gpt4 book ai didi

Java httpPost 未正确发布数据(Apache 库)?

转载 作者:行者123 更新时间:2023-12-01 05:03:42 25 4
gpt4 key购买 nike

快速提问,因为我尝试了很多调试选项,但没有一个可以帮助识别问题。我正在使用 Java 和 Apache HttpPost 库。

我的 httpGet 和 httpHead 目前工作正常,但是我无法让 httpPost 正确发送变量。我在服务器上设置了一个调试 PHP 脚本,以简单地转储 $_POST 的内容。如果我在终端中执行curl 请求,则工作正常。

代码片段:

    // create new HttpPost object
postRequest = new HttpPost(url);

// add post variables
postRequest.setEntity(new StringEntity(body, ContentType.TEXT_HTML));

// execute request
response = executeRequest(postRequest);

字符串变量“body”只是一个字符串,当前包含“test=testing”。此 PHP 调试脚本的输出:

<?php 

echo "Input Stream: ";

var_dump(file_get_contents('php://input'));

echo "POST Variables: ";

var_dump($_POST);

?>

是:

Input Stream: string(12) "test=testing"
POST Variables: array(0) {
}

有谁知道为什么它没有被拾取并转储到 $_POST 变量中?非常令人恼火,因为我花了几个小时在这上面!

如有任何帮助,我们将不胜感激:)谢谢

最佳答案

参见Access all entries of HttpParams

要构建包含参数的 URI,请使用:

NameValuePair nvp = new BasicNameValuePair("test", "testing");
String query = URLEncodedUtils.format(nvp, "utf-8"); // use your favourite charset here
URI uri = new URI("http://localhost/app?" + query;
HttpPost postReq = new HttpPost(uri);
httpClient.execute(postReq);

这将导致:请求http://localhost/app?test=testing

关于Java httpPost 未正确发布数据(Apache 库)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13019497/

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