2013-05-22 33 views
2

任何人都可以点我怎么POST JSON的工作示例,以一个RESTful API(例如网页API)使用的Windows Phone 8?我有一个GET的工作示例,但似乎无法找到POST的任何工作示例。所有的POST的例子,我已经找到了C#不上的Windows Phone 8(由于剥离下来的.NET framework)工作。如何发布到REST风格的API随着Windows Phone 8

+0

这可能是有益的: 我们http://stackoverflow.com/questions/14698879/http-post-for-windows-phone-8 – anderZubi

回答

3

好吧,我终于能拿出一个可行的解决方案,所以我想将它张贴回来的完整性。但是,如果有人知道在Windows Phone 8中执行此操作的更好方法,我很乐意看到它!

public void SendPost(Uri uri, string json) 
{ 
    var webClient = new WebClient(); 

    webClient.Headers[HttpRequestHeader.ContentType] = "application/json"; 
    webClient.UploadStringCompleted += this.sendPostCompleted; 
    webClient.UploadStringAsync(uri, "POST", json); 
} 

private void sendPostCompleted(object sender, UploadStringCompletedEventArgs e) 
{ 
    // Handle result 
    Console.WriteLine("HTTP POST Result: {0}", e.Result); 
} 
+0

如何帖子ID =“XYZ”和密码=“123”作为参数同时调用Restful WebServices?请帮我 –

+0

Web客户端是不是在Windows Phone 8.1框架的类无效。 –

+0

@RahulSaksule,看http://stackoverflow.com/a/5401597/1948785传递参数 – eeadev

0

要做到这一点是使用Restsharp的最佳方式:

 
     Dim client As New RestSharp.RestClient("https://stuff.com/api/") 
      Dim req As New RestSharp.RestRequest("dothings", Method.POST) 
      req.RequestFormat = DataFormat.Json 
      req.AddBody(New reqAuth With {.param1 = "stuff1", .param2= "stuff2"}) 
      client.ExecuteAsync(req, Sub(res) 
             Console.WriteLine(res.Content) 
            End Sub) 
-1
public async void makeRequest(String resourceUri) 
{ 
    HttpClient httpClient = new HttpClient(); 
    try 
    { 
      HttpResponseMessage response = await httpClient.GetAsync(resourceUri); 
    } 
    catch (HttpRequestException hre) 
    { 
      Console.Write(hre.Message); 
    } 
    catch (TaskCanceledException) 
    { 
    } 
} 

记得添加的NuGet包:HttpClient的

+0

这并没有提供详细的解释如何为Windows Phone 8的执行POST操作。 –

0
string email = txtEmailAddress.Text; 
      string password = txtPassword.Text; 
      string confirmPassword = txtConfirmPassword.Text; 
      string dd = txtDD.Text; 
      string mm = txtMM.Text; 
      string yyyy = txtYYYY.Text; 

      UserDetails ud = new UserDetails 
      { 
       DateofBirth = DateTime.Now.ToString(), 
       EmailAddress=email, 
       Password=password, 
       ProfileImage="", 
       UserID="0" 
      }; 

      WebClient wc = new WebClient(); 
      wc.Headers["Content-Type"] = "application/json"; 
      MemoryStream ms = new MemoryStream(); 
      DataContractJsonSerializer serializertoUpload = new DataContractJsonSerializer(typeof(UserDetails)); 
      serializertoUpload.WriteObject(ms, ud); 
      string data = Encoding.UTF8.GetString(ms.ToArray(), 0, (int)ms.Length); 
      wc.UploadStringAsync(new Uri("<wcfserviceurl>"), "POST", data); 

这里的UserDetails类的定义

public class UserDetails 
    { 
     public string UserID { get; set; } 
     public string EmailAddress { get; set; } 
     public string Password { get; set; } 
     public string DateofBirth { get; set; } 
     public string ProfileImage { get; set; } 
    }