【问题标题】:sending JSON to server windows phone 8将 JSON 发送到服务器 windows phone 8
【发布时间】:2015-02-04 10:36:11
【问题描述】:

我正在尝试使用 Web 客户端类将 JSON 字符串发送到服务器,但未返回任何结果,我已尝试使用 Rest Client 插件以确保服务器正在返回某些内容,这是我的 postRequest 方法`

 public static void PostRequest(WebClient webclient,string data,string
 url,string header,string method)
             {
                 Uri uri = new Uri(url, UriKind.Absolute);
                 webclient.Headers[HttpRequestHeader.ContentType] = header;
                 webclient.UploadStringAsync(uri,method,data);  
           }

这里是我调用这个方法的地方

 string newUserJson="{"User_Name":"yosyos","First_Name":"gfhgas","Last_Name":"jagfshg"}";

              wc = new WebClient();
              wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wb_UploadStringCompleted);
             string url = "http://670b9ada.ngrok.com/laravelProjects/TestVisWall/public/users";
              helper.PostRequest( wc, newUserJson, url, "application/json", "POST");

【问题讨论】:

    标签: json windows-phone-8 windows-phone webclient


    【解决方案1】:

    不要使用WebClient,Microsoft 不鼓励使用它。 试试 RestSharp 库,在我看来是一个非常好的库。 Restsharp添加recerense,Nuget方法更快:https://www.nuget.org/packages/RestSharp

    RestClient client = new RestClient("baseurl");    
    var request = new RestRequest("/path/script.php", Method.POST);
    
    request.AddParameter("application/json; charset=utf-8", "json string", ParameterType.RequestBody);
    request.RequestFormat = DataFormat.Json;
    
    client.ExecuteAsync(request, response =>
                                             {
                                                 if (response.StatusCode == HttpStatusCode.OK)
                                                 {
                                                    //OK
                                                 }
                                             });
        }
    

    【讨论】:

    • 我现在正在尝试,但我想知道 RestClient 构造函数“baseurl”中给出的 url 和 RestRequest 构造函数“/path/script.php”中给出的 url 之间的区别?
    • 这取决于您的场景,如果您正在执行单个请求,您可以将完整的 url 传递给构造函数。就个人而言,我对同一个休息服务执行了许多请求,因此基本 url 是静态的,唯一改变的是我正在向其发送数据的远程文件。
    • 谢谢,但我试过了,它和Web客户端一样..没有发送响应
    • 你的意思是响应吗?代码是正确的,所以问题可能出在您尝试访问的服务器上。
    猜你喜欢
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    相关资源
    最近更新 更多