【问题标题】:Error : org.apache.http.client.HttpResponseException: Unsupported Media Type错误:org.apache.http.client.HttpResponseException:不支持的媒体类型
【发布时间】:2014-11-11 19:57:24
【问题描述】:

我正在尝试使用 http://loopj.com/android-async-http/ 和使用 POST 方法调用 web api。我在我的代码中发送 json 和内容类型,总是给出错误消息。

org.apache.http.client.HttpResponseException: 不支持的媒体类型

当我在其他客户端使用相同的 json 和内容类型进行测试时,它工作正常。我不知道我还需要设置什么才能正确执行它。

请看我下面的代码。

// creating JSON using GSON library
Login mLogin = new Login();
mLogin.setUserName(userName);
mLogin.setPassword(password);

Gson gson = new GsonBuilder().create();
String loginJSON = gson.toJson(mLogin);

mHttpEntity = new StringEntity(loginJSON);

// execute the http asynchronously using post http method
asyncHttpClient.post(getActivity(), URL, mHttpEntity, "application/json", new AsyncHttpResponseHandler() {
    @Override
    public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
        Logger.d(TAG, responseBody.toString());
    }

    @Override
    public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
        Logger.d(TAG, responseBody.toString());
    }
});

提前致谢。

【问题讨论】:

    标签: java android json content-type android-async-http


    【解决方案1】:

    在我的情况下,问题在于我没有设置 HTTP 标头之一,所以我不得不添加:

    .setHeader(HttpHeaders.CONTENT_TYPE,"multipart/form-data")
    

    或者无论你的内容类型是什么......

    【讨论】:

      【解决方案2】:

      如果您在您的应用程序中获得 org.apache.http.client.HttpResponseException: Unsupported Media Type 而不是在 REST 客户端中,那么问题可能与您在 POST 活动中添加了额外的东西有关。服务器可能接收到太多(或可能太少)的参数,因此发回了错误的响应。

      没有看到您的实际帖子,我无法准确指出问题出在哪里,但我的建议是尝试查看服务器从您的 POST 接收到的内容,并确保您在 Android POST 中发送的项目与REST API 客户端 POST 完全正确。

      【讨论】:

        猜你喜欢
        • 2020-05-12
        • 2018-10-13
        • 2018-07-25
        • 2016-09-09
        • 2015-08-11
        • 2017-08-28
        • 2015-06-18
        • 2021-10-12
        • 2017-10-23
        相关资源
        最近更新 更多