当前位置:编程学习 > wap >>

windows phone客户端向服务器页面发送数据的问题

在我的wp项目里有一个页面,这个页面获取到了三个TextBlock的值和一个List<string>的数据。现在我想把这些值都发送给服务器端的一个ashx页面,然后做相应的处理。如果只是三个TextBlock的值,我知道用webClient这种方式:
wc.DownloadStringAsync(new Uri("http://localhost:55425/Phone/ClassList.ashx?method=1&pagecount="
                + pageCount + "&userName=" + username, UriKind.Absolute));
可是这个List<string>数据不知道怎么传给服务器页面。 Windows Phone --------------------编程问答-------------------- 可以用HttpWebRequest发post请求。
也可以在服务端做一个webservice。 --------------------编程问答-------------------- httpwebrequest怎么发post请求呀?
我在网上看了看post请求的例子,都是发的字符串的,所以不知道该怎么写。
private void button1_Click(object sender, RoutedEventArgs e)
02
        {
03
            HttpWebRequest req = HttpWebRequest.Create(new Uri("http://localhost:51313/Server/test1.ashx")) as HttpWebRequest;
04
            req.Method = "POST";
05
            req.ContentType = "application/x-www-form-urlencoded";
06
            req.BeginGetRequestStream(HttpPostCallback, req);
07
        }
08
 
09
        private void HttpPostCallback(IAsyncResult result)
10
        {
11
            var req = result.AsyncState as HttpWebRequest;
12
 
13
            List<string> greeting = App.DishnosInfo.Dishnos;//这里是我要传的App.DishnosInfo.Dishnos,类型是List<sring>
14
 
15
            byte[] greetbytes = Encoding.UTF8.GetBytes(greeting);//这里不知道该怎么写了,这样写是不对的
16
 
17
            using (var requestStream = req.EndGetRequestStream(result))
18
            {
19
                requestStream.Write(greetbytes, 0, greetbytes.Length);
20
                requestStream.Close();
21
            }
22
            req.BeginGetResponse(HttpGetResponseCallback, req);
23
        }
24
 
25
        private void HttpGetResponseCallback(IAsyncResult result)
26
        {
27
            var req = result.AsyncState as HttpWebRequest;
28
            var resp = req.EndGetResponse(result);
29
            var strm = resp.GetResponseStream();
30
            var reader = new StreamReader(strm);
31
 
32
            this.Dispatcher.BeginInvoke(() =>
33
            {
34
                textBlock1.Text = reader.ReadToEnd();
35
            });
36
        }
--------------------编程问答-------------------- 那要看服务器有没有相应的接口。

--------------------编程问答-------------------- 你把greeting里的值连起来行么?中间加个分隔符什么的,然后服务器端再去解析 --------------------编程问答-------------------- HttpRequest LZ可以请求么, 我一旦请求就阻塞,也不出错就是一直堵着,连个异常都不给,我都郁闷死了 --------------------编程问答-------------------- 试试序列化成字符串转成字节数组,写入到流中发过去 --------------------编程问答-------------------- 可以用webclient或者httpwebrequest发送http请求
也可以调用webservie
如果用你现在的webclient方式应该是UploadStringAsync(Uri address, string method, string data) 把数据接送序列化为string传给data参数
序列化的方法为定义一个类 四个变量:三个string类型一个list<string>用于存储页面数据 然后序列化 
一般为json序列化 用netonsoft.json.dll 或者用系统的二进制序列化或者base64序列化等等 --------------------编程问答-------------------- 直接做个JSON序列化好了。 --------------------编程问答-------------------- 你服务器端接收的是什么啊,xml?那就直接序列化为xml啊,字符串也行,json就序列化为json --------------------编程问答-------------------- 序列化成json, post传输
补充:移动开发 ,  Windows Phone
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,