我试图将数据从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, [email protected],
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);
您可以尝试以下几种方法:
HttpClient
有时会出现问题RestSharp
替换basic System.Net.HttpClient
客户端。此解决方案为您提供较少的高级方法,但您可以查看问题是否仍然存在我记得不得不一次处理这个问题,我认为解决方案是直接使用IP地址而不是导致所述IP地址的域。请试一试,如果有帮助请告诉我。
我在Visual Studio 2019项目中使用Xamarin.Forms和RestSharp v106.6.9在Android Emulator的本地开发网络中遇到了同样的问题。一开始使用“BaseUrl”:“http://MachineName:63740”的简单调用工作正常:
var restResponse = restClient.Execute(restRequest);
var content = restResponse.Content;
突然间它不再解析MachineName。甚至在我重新启动运行API Web服务的服务器机器以及消费客户端机器之后。在“BaseUrl”:“http://192.168.0.2:63740”中将MachineName更改为其IP地址,一切都重新开始。所以Raimo的答案是解决我问题的唯一方法。此主题可能指向问题的根本原因:https://issuetracker.google.com/issues/36916949