LoopJ AndroidAsyncHttp在指定RequestParams时返回代码415

时间:2014-11-19 14:23:01

标签: android android-async-http

我使用LoopJ AndroidAsyncHttp从我的Android应用程序发布异步Http调用。当我指定一些RequestParams时,调用保持失败,并带有statusCode 415(不支持的媒体类型)。一旦我删除requestParams,呼叫就会通过,没有任何错误。

final AsyncHttpClient client;
String url = "http://someURL.com/SomeUserGUID/Profile/Statistics/Setup";
client = new AsyncHttpClient();

final RequestParams params = new RequestParams();
params.put("FirstClub", "false");
params.put("FairwayHit", "false");

Header[] headers = {
    new BasicHeader("Accept-Language", Locale.getDefault().toString())
    ,new BasicHeader("Authorization", ApplicationObject.companyBasicAuthString)
    ,new BasicHeader("Accept", "application/json")
};

client.setTimeout(60000);

client.post( ProfileActivity.this,url, headers, params, "application/json", new     AsyncHttpResponseHandler() {

@Override
public void onStart() {
    //Do something before start
    super.onStart();
}

@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
    //some code
}

@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
    //some code
}
});

我的目标是让网址如下所示:String url = http://someURL.com/SomeUserGUID/Profile/Statistics/Setup?FirstClub=false& FairwayHit=false

我首选不要将URL硬编码为一个单独的字符串(此方法适用于btw),因为我有一些调用可以创建一个非常长的URL字符串。

那么如何使用params,使用AndroidAsyncHttp?

来实现成功的后调用

1 个答案:

答案 0 :(得分:0)

  

415不支持的媒体类型

     

服务器拒绝为请求提供服务,因为请求的实体采用的格式不受支持   按所请求方法的请求资源。

您正在发送Content-Type标题(在您的帖子中)作为" application / json",但您添加的参数不是JSON。这可能是错误发生的原因。

相关问题