我试图使用Android Volley库发送JSON Post请求,但我似乎没有得到json的正文,我在我的Web服务器上得到未定义的正文参数。我需要json的参数体是一个单一的对象"name=某些Val
String spreadsheetID = "1111111-11111N92RT9h-11111111111111111111111111111";
String url = "https://script.google.com/macros/s/" + spreadsheetID + "/exec";
// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
// Request a string response from the provided URL.
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("JSONPost", response.toString());
//pDialog.hide();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("JSONPost", "Error: " + error.getMessage());
//pDialog.hide();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("name=someVal&comment=someOtherVal");
//params.put("comment", "someOtherVal");
return params;
}
};
// Add the request to the RequestQueue.
queue.add(jsonObjReq);
}
我也在上面的代码中尝试了这一点,但没有成功:
params.put("comment", "someOtherVal");
params.put("name", "someVal");
如果您需要发送JSON POST,那么您应该转储http。头部和http。电线,你可能应该看看......
"Content-Type: application/json" // among headers
...
{"name":"someVal","comment":"someOtherVal"} // in the POST.body
了解如何在截击中记录标题和线。。。。
考虑在CLI上使用CURL测试POST,其中添加-v开关将显示详细信息。然后,在curl中起作用的是,你把它逐字移动到你的Android超文本传输协议客户端,它就会起作用。
谷歌电子表格似乎更喜欢这种格式:
String spreadsheetID = "111111-111111111D746wspoleBbRN92RT9h-111111";
String url = "https://script.google.com/macros/s/" + spreadsheetID + "/exec";
// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest sr = new StringRequest(Request.Method.POST,url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//
}
}){
@Override
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String, String>();
params.put("name","userAccount.getUsername()");
params.put("comment","userAccount.getPassword()");
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> params = new HashMap<String, String>();
params.put("Content-Type","application/x-www-form-urlencoded");
return params;
}
};
queue.add(sr);
试着把
Map<String, String> params = new HashMap<String, String>();
params.put("comment", "someOtherVal");
params.put("name", "someVal");
在JsonObjectRequest JSONObjectReq之前。。。并通过
new JsonObject(params)
因此,您的代码将是
Map<String, String> params = new HashMap<String, String>();
params.put("comment", "someOtherVal");
params.put("name", "someVal");
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
url, new JsonObject(params),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("JSONPost", response.toString());
//pDialog.hide();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("JSONPost", "Error: " + error.getMessage());
//pDialog.hide();
}
})
我想用原始字符串发送帖子请求,而不是使用截击设置参数。 我已尝试覆盖StringRequest中的getBody方法,如下所示: 它甚至不会发送请求并给出错误:com。Android截击时间误差 任何帮助都将不胜感激。
问题内容: 我有这个json数据: 使用php我如何发送此发布请求? 问题答案: 不 使用任何外部依赖项或库: $ response 是一个对象。可以像往常一样访问属性,例如 $ response- > … 其中 $ data 是包含 数据 的数组: 警告 :如果在php.ini 中将 allow_url_fopen 设置设置为 Off ,则此方法将无效。
这是我用来发出POST请求的一段代码。 在以前的项目中,一切都很好地工作,但现在的问题是,我想在帖子正文中包括布尔值和字符串值。 正文如下:{"email":"username@mail.com","密码":"Somepassword","rememberPassword": false,"ip_address":"152.57.31.41","isCaptchaEn的": false} 我不熟悉
我需要发送如下内容: 我该怎么做?如果我尝试使用此代码,它将不起作用: 我认为我应该创建一个,但我不知道如何做到这一点。
我正在测试一种使用改装库发送图像的方法。在此处的改装文件中:http://square.github.io/retrofit/有一种方法可以使用@MultiPart注释。我正在尝试像文档一样使用,但对我来说仍然不起作用。 我该怎么做? 我在努力。 Web服务php文件 Usario的侦听器 活动 例外 电子/错误:(5200):com。谷歌。格森。JsonSyntaxException:com。谷
问题内容: 我们如何在NodeJS中发出这样的HTTP请求?示例或模块的赞赏。 问题答案: Mikeal的请求 模块可以轻松做到这一点: