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

问题描述 投票:6回答:3

我试图将数据从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);
c# xamarin.forms xamarin.android netsuite xamarin-studio
3个回答
2
投票

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

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

1
投票

我记得不得不一次处理这个问题,我认为解决方案是直接使用IP地址而不是导致所述IP地址的域。请试一试,如果有帮助请告诉我。


0
投票

我在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

© www.soinside.com 2019 - 2024. All rights reserved.