gpt4 book ai didi

android - Android 请求中的 Post 参数

转载 作者:行者123 更新时间:2023-11-29 16:09:42 24 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,但在对我自己的服务器发出请求时遇到了问题。我用 Play Framework 创建了服务器,并从 Json 获取参数:

 response.setContentTypeIfNotSet("application/json; charset=utf-8");        
JsonParser jsonParser = new JsonParser();
JsonElement jsonElement = jsonParser.parse(getBody(request.body));
Long id =jsonElement.getAsJsonObject().get("id").getAsLong();

当我对我的服务器发出 GET 请求时,一切正常。但是当我发出 POST 请求时,我的服务器返回一个未知错误,关于 JSON 格式错误或无法找到该元素。

private ArrayList NameValuePair> params;

private ArrayList NameValuePair> headers;

...

case POST:

  HttpPost postRequest = new HttpPost(host);
// Add headers
for(NameValuePair h : headers)
{
postRequest.addHeader(h.getName(), h.getValue());
}
if(!params.isEmpty())
{
postRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
}
executeRequest(postRequest, host);
break;

我尝试处理请求的参数,但失败了:

if(!params.isEmpty()) {
HttpParams HttpParams = new BasicHttpParams();

 for (NameValuePair param : params)
{
HttpParams.setParameter(param.getName(), param.getValue());
}
postRequest.setParams(HttpParams); }

并且有不同的错误,取决于我提出的要求。它们都是'play.exceptions.JavaExecutionException':

  • 'com.google.gson.stream.MalformedJsonException'
  • '这不是 JSON 对象'
  • '期望找到的对象:“id”'

我希望有人能帮助我。

最佳答案

这是发送 HTTP Post 的简单方法。

HttpPost httppost = new HttpPost("Your URL here");
httppost.setEntity(new StringEntity(paramsJson));
httppost.addHeader("content-type", "application/json");
HttpResponse response = httpclient.execute(httppost);

你最好直接使用 JSON 字符串而不是在这里解析它。希望对你有帮助

关于android - Android 请求中的 Post 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14455693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com