Xamarin RestSharp POST方法抛出请求超时错误和名称解析错误

Sal*_*man 6 c# netsuite xamarin.android xamarin-studio xamarin.forms

我试图将数据从Xamarin android app发布到Netsuite RESTlet api.下面的代码在使用rest sharp库的asp.net web表单c#中工作正常,也适用于Postman Desktop应用程序.但是当我尝试发布数据xamarin android app时,它会抛出以下错误.

  • 响应错误:名称解析错误

有时它会抛出以下错误

请求超时

                    var client = new RestClient("testclient.com");
                    var request = new RestRequest(Method.POST);
                    request.AddHeader("postman-token", "123-456-789-123-3654");
                    request.AddHeader("cache-control", "no-cache");
                    request.AddHeader("content-type", "application/json");
                    request.AddHeader("authorization", "NLAuth nlauth_account= 
                    12345678, nlauth_email=test@test.com, 
                    nlauth_signature=test123, nlauth_role=correctrole");
                    request.AddParameter(
                    "application/json", 
                    "[{ \"id\": \"123\", \t\"myid\": \"111\", \t\"qty\": \"4\" } , { \"id\": \"123\", \t\"myid\": \"618\", \t\"qty\": \"6\" } \n, { \"id\": \"123\", \t\"1234\": \"2037\", \t\"qty\": \"3\" } , { \"id\": \"123\", \t\"1243\": \"126\", \t\"qty\": \"2\" }]",
                    ParameterType.RequestBody);
                    IRestResponse response = client.Execute(request);
Run Code Online (Sandbox Code Playgroud)

Mar*_*und 2

您可以尝试以下几种方法:

  1. 确保所有包都是最新的
  2. 使用 Fiddler 查看网络流量并检查发出的请求和收到的响应。可以在这里找到教程
  3. 检查您的请求 URL 是否完整(例如,包括结尾的“/”字符),有时忘记这一点会导致重定向,HttpClient有时会出现问题
  4. 将客户端替换RestSharp基本System.Net.HttpClient. 此解决方案为您提供了不太高级的方法,但您可以查看问题是否仍然存在