2017-12-01 2 views
0

Ich benutze RestSharp, um mit der UPS API zu sprechen.RestSharp Response wird leer

Ich habe POSTMAN und ich kann mit der API gut reden, aber wenn ich es auf C# portiere, bekomme ich einen leeren Wert für response.Content zurück.

private void button2_Click(object sender, EventArgs e) 
     { 
      label1.Text = CustomerName; 
      MessageBox.Show(username); 
      MessageBox.Show(password); 
      MessageBox.Show(Lic); 
      try 
      { 
       var client = new RestClient("https://wwwcie.ups.com/rest/Track"); 
       var request = new RestRequest(Method.POST); 
       request.AddHeader("postman-token", "73a23cf5-558a-9a83-ec80-4a224b35351a"); 
       request.AddHeader("cache-control", "no-cache"); 
       request.AddHeader("content-type", "application/json"); 
       request.AddParameter("application/json", "{\r\n \"UPSSecurity\": {\r\n \"UsernameToken\": {\r\n  \"Username\": " + username + ",\r\n  \"Password\": " + password + "\r\n },\r\n \"ServiceAccessToken\": {\r\n  \"AccessLicenseNumber\": " + Lic + "\r\n }\r\n },\r\n \"TrackRequest\": {\r\n \"Request\": {\r\n  \"RequestAction\": \"Track\",\r\n  \"RequestOption\": \"activity\"\r\n },\r\n \"InquiryNumber\": " + textBox1.Text.Trim() + "\r\n }\r\n}", ParameterType.RequestBody); 
       string result = ""; 
       request.Timeout = 10000; 
       //IRestResponse response = client.Execute(request); 

       client.ExecuteAsync(request, (response) => 
       { 
        result = response.Content; 
        MessageBox.Show(result); 
       } 
       ); 
      } 
      catch (Exception err) 
      { 
       MessageBox.Show(err.ToString()); 
      } 
     } 

Alles sieht mir gut, aber ich bin mir nicht sicher, wo ich das Problem habe ich durch die vergangenen Artikel sah und bemerkte, die ExecuteAsync so habe ich versucht, diese Lösung aber es ist noch leer.

Danke für jede Hilfe.

Antwort

0

Ich habe dies hinzugefügt und es hat den Trick gemacht.

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;