ОТДЫХ ОТДЫХА не отвечает в приложении Xamarin.Android. Почтальон отвечает, но не приложение.

Я отправляю запрос POST от приложения Xamarin.Android на VS 2015, используя RestSharp, но ответ не приходит. Я увеличил время ожидания, но ответа не последовало. Он работает с 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

2 ответа

Решение

Это решено, проблема была с 'типом контента'. Я добавил тип контента как:

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

но по какой-то причине тип контента не устанавливался, и поэтому мой запрос был закрыт с сервера и вернул код состояния 0. Поэтому вместо этого я сделал следующее, и он работал нормально.

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

Возможно, вы не знаете, где это происходит, может быть, вы неправильно передали заголовок или сообщение в теле не имеет правильный формат JSON. Вы можете проверить это по ссылке ниже и убедиться, что это правильно

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

Другие вопросы по тегам