发布JSON的问题

时间:2015-12-14 14:19:04

标签: c# json windows-phone-8.1

所以在我的客户端(Windows Phone 8.1应用程序)我发布了一个JSON只是为了测试,这是代码:

    public async void SendJSON()
    {
        try
        {
            string url = "http://posttestserver.com/post.php?dir=karim";

            var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
            httpWebRequest.ContentType = "text/plain; charset=utf-8";
            httpWebRequest.Method = "POST";

            using (var stream = await Task.Factory.FromAsync<Stream>(httpWebRequest.BeginGetRequestStream,
                                                         httpWebRequest.EndGetRequestStream, null))
            {
                //create some json string
                string json = "{ \"my\" : \"json\" }";

                // convert json to byte array
                byte[] jsonAsBytes = Encoding.UTF8.GetBytes(json);

                // Write the bytes to the stream
                await stream.WriteAsync(jsonAsBytes, 0, jsonAsBytes.Length);
            }
        }
        catch(Exception ex)
        {

        }

    }

现在我想知道,从www.myurl.com我如何使用网络服务检索从移动应用程序发布的内容?

更新

当我调试这些行时,它会完美地运行而不会破坏也不会陷入捕获。但是,当查看它应该发布到的位置(结果在这里http://www.posttestserver.com/data/2015/12/14/karim/)时,它不会发布任何内容。

有谁知道我做错了什么?

顺便说一句:它已经有了结果,因为我直接从我的桌面完成了这个。

3 个答案:

答案 0 :(得分:0)

如果您只想查看,发送的内容,可以使用此http://posttestserver.com

否则,如何强制某些端点检索数据并不容易。必须设置服务器,允许它,处理它,存储它等。

如果您向http://posttestserver.com/post.php张贴任何内容,它将返回此消息

  

成功转储0个后变量。查看它   http://www.posttestserver.com/data/2015/12/15/00.19.29177030164发布   身体长达134个字符。

因此,只需打印您的回复,您就会得到确切的网址

答案 1 :(得分:0)

不确定你要做什么,但如果你想检查你的http请求fiddler是一个不错的选择。由于您使用的是Windows手机应用程序,因此您可以将Windows手机模拟器配置为通过提琴手进行代理。

以下是博客文章如何进行设置:http://blogs.msdn.com/b/wsdevsol/archive/2013/06/05/configure-the-windows-phone-8-emulator-to-work-with-fiddler.aspx - 配置Windows Phone 8模拟器以使用Fiddler

// 修改:您是否考虑过使用HttpClient

var httpClient = new HttpClient(); 
string resourceAddress = "http://posttestserver.com/post.php?dir=karim"; 
            string postBody = "{ \"my\" : \"json\" }"
            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
            var response = await httpClient.PostAsync(resourceAddress, new StringContent(postBody, Encoding.UTF8, "application/json")); 

代码来自我的头脑,所以你可能需要调整它...当然你需要处理错误情况和/或重试等 HTH

答案 2 :(得分:-1)