【问题标题】:HTTP POST is not working from JavaHTTP POST 在 Java 中不起作用
【发布时间】:2015-02-02 10:10:15
【问题描述】:

我正在尝试发布 http 帖子。相同的代码正在工作。但是现在它现在没有命中我的 servlet,而是给出了 http 响应代码 200。从浏览器中,相同的 url 正在命中 servlet。有什么限制我发帖的吗?请帮助我。抱歉英语不好。

int timeout=3000;
String url="http://localhost:8020/WiCodeDynamic/WiCode?json=";
String requestUrl="{\"vspCredentials\":{\"id\":\"TET\",\"password\":\"test\"}}";
URL x = new URL(url);
HttpURLConnection connection =(HttpURLConnection)x.openConnection();

connection.setRequestMethod("POST");
//;charset=utf-8
connection.setRequestProperty("Content-type","application/json");
connection.setDoOutput(true);
connection.setConnectTimeout(timeout);

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
bw.write(requestUrl);
bw.flush();

int resp_code = connection.getResponseCode();
String resp_msg = connection.getResponseMessage();

System.out.println("resp_code="+resp_code);
System.out.println("resp_msg="+resp_msg);

brs,

【问题讨论】:

    标签: java apache http servlets post


    【解决方案1】:

    只是一个小错误。将 json= 从 URL 的末尾移到 POST 请求的开头 (requestUrl),应该没问题。

    另外我建议你使用URLEncoder.encode 来转义你正确传输的字符串。

    【讨论】:

    • 我已经搬家了。但是现在我在我的 servlet 中检索参数 json 时得到了 null。早些时候它是空的。还有什么变化吗?
    • 你使用了 URLEncoder.encode 吗?如果你不这样做,它将失败。
    • 是的,我用过。URLEncoder.encode(requestUrl, "UTF-8");
    • 只有json= 之后的部分必须进入 URLEncoder。如果您发送所有编码器将转义=
    • 谢谢..因为我将内容类型设置为 json。我应该在请求 url 中直接写为流而不带参数 =。我评论了内容类型并让它工作。
    猜你喜欢
    • 2015-09-30
    • 2011-12-23
    • 1970-01-01
    • 2022-11-04
    • 2013-09-18
    • 2015-07-07
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多