【问题标题】:post request parameters not getting set [duplicate]未设置发布请求参数[重复]
【发布时间】:2016-03-04 18:28:16
【问题描述】:

我正在从 android 向 python 服务器发送 POST 请求(OKHttp)。

安卓

public static final MediaType JSON
            = MediaType.parse("application/json; charset=utf-8");
String params="name="+Name+"&pass="+Pass;
RequestBody body = RequestBody.create(JSON, params);
Request request=new Request.Builder().url(URL).post(body).build(); //Request{method=POST, url=http://10.XX.XXX.XXX:8080/register, tag=null}
Response res=client.newCall(request).execute();

python 服务器

@app.route('/register',methods=["GET","POST"])
def register():
    name=request.args.get('name')
    password=request.args.get('pass')

    print name   #None?
    print password  #None?
    return ''

为什么标签为空,我在设置 POST 参数时是否遗漏了一些要点?

【问题讨论】:

  • 你为什么在android上使用POST请求?
  • 因为我想将数据作为 POST 请求发送到服务器。
  • args.get 用于 GET 请求。对于 POST,请使用 request.form('name')

标签: android python okhttp


【解决方案1】:

参数不是 JSON 格式。尝试按如下方式构建参数:

JSONObject paramsJson = new JSONObject();
object.put("name", Name);
object.put("pass", Pass);

String params = object.toString();

如果发生 JSONException,您还必须使用 try/catch。

【讨论】:

    猜你喜欢
    • 2019-04-03
    • 1970-01-01
    • 2016-05-06
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多