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