REST POST 在 Xamarin.Android 应用程序中没有响应。它正在响应 Postman 但不是应用程序。

REST POST not responding in Xamarin.Android App. It is responding with Postman but not app.

我正在使用 RestSharp 在 VS 2015 上从 Xamarin.Android appl 发送 POST 请求,但没有收到任何响应。我增加了超时但没有回应。它适用于 POSTMAN,但不适用于 Android 应用程序。

 RestClient client = new RestClient("https://" + orgId + ".internetofthings.ibmcloud.com");
 RestRequest request = new RestRequest("/api/v0002/application/types/" + typeId + "/devices/" + deviceId + "/events/" + typeId + deviceId, Method.POST);

        byte[] byteArray = Encoding.UTF8.GetBytes(username + ":" + password);
        string authenticationToken = Convert.ToBase64String(byteArray);

        request.AddHeader("Authorization", "Basic " + authenticationToken);
        request.Timeout = 2000000;
        request.AddJsonBody(newVal);


        IRestResponse response = client.Execute(request);
        return response.StatusCode.ToString();`

我只在正文中发送 "newVal"(字符串)。这适用于邮递员。如果需要更多解释,请告诉我。太感谢了。

环境: Visual Studio 2015,RESTSharp,Xamarin.Android,服务器:IBM BlueMix

不确定失败的原因可能是您没有正确传递 header 或 body 消息没有正确的 JSON 格式。您可以在下面检查 link 并确保它是正确的

https://docs.internetofthings.ibmcloud.com/swagger/v0002.html#/

已解决,问题出在 'content type'。我添加的内容类型为:

request.AddHeader("Content-Type","application/json");

但由于某种原因未设置内容类型,这就是我的请求被服务器关闭并返回状态代码 0 的原因。 因此,我做了以下操作并且效果很好。

request.JsonSerializer.ContentType = "application/json; charset=utf-8";