windows phone 8中如何获取没有return值的JSON数据?

qq_22892215 2016-03-10 01:35:13
windows phone 8中如何获取没有return值的JSON数据?json数据直接在网页中显示的,比如{"success":"True","code":"1003","msg":"验证码已发送","result":""}

后台是一个没有返回值的webservice,所有数据都必须以POST方式提交,提交给服务器后,服务器并不会给返回值,而是会把运行结果在网页上显示出来,我举个例子:

登录模块中通过sms_verify_code_get_test方法打开这个界面:

(然而并没有上传成功,附地址好了:https://social.msdn.microsoft.com/Forums/getfile/812949

在输入手机号mobile后点invoke,跳转到的页面是这样的:

(家里电脑真是吃翔了,真的上传不了图片,同样附上链接:https://social.msdn.microsoft.com/Forums/getfile/812951

之所以用POST的方式,是因为需要提交一个号码来发送短信验证码,虽然引用服务也可以让服务器给指定的手机号发送验证码,但是获取不到服务器显示的验证码值。但是换用httprequest的方式以stream获取返回数据,却提示not found...我目前完全没头绪了,如果方便的话,可以在这个页面中看一下就知道了:http://222.88.66.22:9100/dongbenservice.asmx?op=sms_verify_code_get_test

最后,附上代码,祈祷大神能看到并给予帮助:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using HttpRequestPostTest.Resources;

using System.IO;
using System.Text;
using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;

namespace HttpRequestPostTest
{
public partial class MainPage : PhoneApplicationPage
{
// 构造函数
public MainPage()
{
InitializeComponent();

// 用于本地化 ApplicationBar 的示例代码
//BuildLocalizedApplicationBar();
}

HttpWebRequest myRequest = null;

private void Button_Click(object sender, RoutedEventArgs e)
{
string url = "http://222.88.66.22:9100/dongbenservice.asmx?op=sms_verify_code_get_test";
myRequest = (HttpWebRequest)WebRequest.Create(new Uri(url));
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), myRequest);
}

private void GetRequestStreamCallback(IAsyncResult asynchronousResult)
{

HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;

using (Stream postStream = myRequest.EndGetRequestStream(asynchronousResult))
{
Dictionary<string, string> post = new Dictionary<string, string>();
post.Add("mobile", "18637919897");
byte[] entryBytes = Encoding.UTF8.GetBytes(post.ToString());
postStream.Write(entryBytes, 0, entryBytes.Length);
postStream.Close();
myRequest.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
}
}

private void GetResponseCallback(IAsyncResult asynchronousResult)
{

HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;

HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);

//这里出现错误:
//“System.Net.WebException”类型的异常在 未知模块。 中发生,但未在用户代码中进行处理

//如有适用于此异常的处理程序,该程序便可安全地继续运行。

Stream streamResponse = response.GetResponseStream();

StreamReader streamRead = new StreamReader(streamResponse);

string responseString = streamRead.ReadToEnd();

this.TextBlock.Text = responseString;

streamRead.Close();

streamResponse.Close();

}

// 用于生成本地化 ApplicationBar 的示例代码
//private void BuildLocalizedApplicationBar()
//{
// // 将页面的 ApplicationBar 设置为 ApplicationBar 的新实例。
// ApplicationBar = new ApplicationBar();

// // 创建新按钮并将文本值设置为 AppResources 中的本地化字符串。
// ApplicationBarIconButton appBarButton = new ApplicationBarIconButton(new Uri("/Assets/AppBar/appbar.add.rest.png", UriKind.Relative));
// appBarButton.Text = AppResources.AppBarButtonText;
// ApplicationBar.Buttons.Add(appBarButton);

// // 使用 AppResources 中的本地化字符串创建新菜单项。
// ApplicationBarMenuItem appBarMenuItem = new ApplicationBarMenuItem(AppResources.AppBarMenuItemText);
// ApplicationBar.MenuItems.Add(appBarMenuItem);
//}
}
}
...全文
1386 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_22892215 2016-03-14
  • 打赏
  • 举报
回复
竟然没人关注?自己顶一下!

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧