gpt4 book ai didi

java - 如何对 drupal 表执行 Volley PUT

转载 作者:行者123 更新时间:2023-12-01 12:40:09 24 4
gpt4 key购买 nike

我正在尝试使用 Android 应用程序中的 Volley 将 x-www-form-urlencoded 的 PUT 放入 drupal 表中。我尝试在参数中发送“类型”和“值”,但收到 500 错误。基本的 StringRequest 返回 404。

这是我的最新代码。我只找到了一两个涉及截击推击的条目。任何帮助,将不胜感激。祝你有美好的一天。

private void postTestAnswerResult(String id, String answerResult) {

StringRequest req = null;
requestQueue = Volley.newRequestQueue(this);

final String baseURL = "http://blah.blah.com/api/answer/";
String URL = baseURL + id;
// Post params to be sent to the server
HashMap<String, String> params = new HashMap<String, String>();
params.put("Content-Type","application/x-www-form-urlencoded");

params.put("type", answerResult);



req = new StringRequest(Request.Method.PUT, URL,

new Response.Listener<String>() {
@Override
public void onResponse(String response) {
VolleyLog.v("Response:%n %s", response.toString());
}
},

new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
try {
String responseBody = new String(
volleyError.networkResponse.data, "utf-8");
JSONObject jsonObject = new JSONObject(responseBody);
} catch (JSONException e) {
// Handle a malformed json response
} catch (UnsupportedEncodingException error) {

}
}
}

);

requestQueue.add(req);

}

最佳答案

如果您仍然遇到问题,正如 @Meier 在上面的评论中指出的那样,您没有使用 params 变量,或者更确切地说,您没有正确使用它。数据未发送到服务器,服务器可能需要该数据,从而导致 500 错误。

您需要重写 StringRequest 调用的 getParams 方法才能发送数据。因此,以下内容将更接近完成工作:

private void postTestAnswerResult(String id, String answerResult) {
StringRequest req = null;
requestQueue = Volley.newRequestQueue(this);

final String baseURL = "http://blah.blah.com/api/answer/";
String URL = baseURL + id;



req = new StringRequest(Request.Method.PUT, URL,

new Response.Listener<String>() {
@Override
public void onResponse(String response) {
VolleyLog.v("Response:%n %s", response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
try {
String responseBody = new String(
volleyError.networkResponse.data, "utf-8");
JSONObject jsonObject = new JSONObject(responseBody);
} catch (JSONException e) {
// Handle a malformed json response
} catch (UnsupportedEncodingException error) {

}
}
}
) {
@Override
protected Map<String, String> getParams()
{
HashMap<String, String> params = new HashMap<String, String>();
// params.put("Content-Type","application/x-www-form-urlencoded"); This shouldn't be here. This is a HTTP header. If you want to specify header you should also override getHeaders.
params.put("type", answerResult);

return params;
}

};

requestQueue.add(req);

浏览器不会忽略 500 错误。它们经常在浏览器窗口中显示为丑陋的消息。

关于java - 如何对 drupal 表执行 Volley PUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25190286/

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