谁能告诉我为什么以下声明不会将发布数据发送到指定的网址?当我打印$ _POST时,在服务器上调用url - 我得到一个空数组.如果我在将数据添加到数据之前在控制台中打印消息 - 它会显示正确的内容.
$http.post('request-url', { 'message' : message });
Run Code Online (Sandbox Code Playgroud)
我也尝试将数据作为字符串(具有相同的结果):
$http.post('request-url', "message=" + message);
Run Code Online (Sandbox Code Playgroud)
当我以下列格式使用它时它似乎正在工作:
$http({
method: 'POST',
url: 'request-url',
data: "message=" + message,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
Run Code Online (Sandbox Code Playgroud)
但有没有办法用$ http.post()来做 - 并且我总是必须包含标题才能使它工作?我相信上面的内容类型是指定发送数据的格式,但我可以将其作为javascript对象发送吗?
我成功地使用此代码HTTP通过GET方法发送 带有一些参数的请求
void sendRequest(String request)
{
// i.e.: request = "http://example.com/index.php?param1=a¶m2=b¶m3=c";
URL url = new URL(request);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("GET");
connection.setRequestProperty("Content-Type", "text/plain");
connection.setRequestProperty("charset", "utf-8");
connection.connect();
}
Run Code Online (Sandbox Code Playgroud)
现在我可能需要通过POST方法发送参数(即param1,param2,param3),因为它们非常长.我想在该方法中添加一个额外的参数(即String httpMethod).
如何能够尽可能少地更改上面的代码,以便能够通过GET或发送参数POST?
我希望改变
connection.setRequestMethod("GET");
Run Code Online (Sandbox Code Playgroud)
至
connection.setRequestMethod("POST");
Run Code Online (Sandbox Code Playgroud)
本来可以做到的,但参数仍然是通过GET方法发送的.
有HttpURLConnection任何方法可以帮助吗?有没有有用的Java构造?
任何帮助将非常感谢.
我需要使用WebClient的"HTTP Post"将一些数据发布到我拥有的特定URL.
现在,我知道这可以通过WebRequest完成,但出于某些原因我想使用WebClient.那可能吗?如果是这样,有人能告诉我一些例子还是指向正确的方向?
我正在尝试使用Flask构建一个简单的API,我现在想要阅读一些POSTed JSON.我使用PostMan Chrome扩展程序发布帖子,而JSON我的帖子很简单{"text":"lalala"}.我尝试使用以下方法读取JSON:
@app.route('/api/add_message/<uuid>', methods=['GET', 'POST'])
def add_message(uuid):
content = request.json
print content
return uuid
Run Code Online (Sandbox Code Playgroud)
在浏览器上它正确地返回我放入GET的uuid,但是在控制台上,它只是打印出来None(我希望它打印出来{"text":"lalala"}.有人知道我如何从Flask方法中获取发布的JSON吗?
我有一大堆默认选中的复选框.我的用户可能会取消选中一些(如果有的话)复选框,然后选中其余部分.
有没有什么办法,使表单POST所复选框不检查,而不是的那些被选中?
我们假设这个URL ...
http://www.example.com/page.php?id=10
Run Code Online (Sandbox Code Playgroud)
(这里需要在POST请求中发送id)
我想发送id = 10到服务器page.php,它在POST方法中接受它.
我怎样才能从Java中做到这一点?
我试过这个:
URL aaa = new URL("http://www.example.com/page.php");
URLConnection ccc = aaa.openConnection();
Run Code Online (Sandbox Code Playgroud)
但我仍然无法弄清楚如何通过POST发送它
我正在尝试在支付界面网站上收到JSON POST,但我无法对其进行解码.
当我打印:
echo $_POST;
Run Code Online (Sandbox Code Playgroud)
我明白了:
Array
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我什么也得不到:
if ( $_POST ) {
foreach ( $_POST as $key => $value ) {
echo "llave: ".$key."- Valor:".$value."<br />";
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我什么也得不到:
$string = $_POST['operation'];
$var = json_decode($string);
echo $var;
Run Code Online (Sandbox Code Playgroud)
我尝试这个时得到NULL:
$data = json_decode( file_get_contents('php://input') );
var_dump( $data->operation );
Run Code Online (Sandbox Code Playgroud)
当我做:
$data = json_decode(file_get_contents('php://input'), true);
var_dump($data);
Run Code Online (Sandbox Code Playgroud)
我明白了:
NULL
Run Code Online (Sandbox Code Playgroud)
JSON格式是(根据支付站点文档):
{
"operacion": {
"tok": "[generated token]",
"shop_id": "12313",
"respuesta": "S",
"respuesta_details": "respuesta S",
"extended_respuesta_description": "respuesta extendida",
"moneda": "PYG",
"monto": "10100.00",
"authorization_number": "123456",
"ticket_number": "123456789123456", …Run Code Online (Sandbox Code Playgroud) 对不起,如果这是重复的,我会认为它会找不到任何东西.
我有一个flex应用程序,我通过IE将数据发送回php/mysql服务器.我还没有遇到任何问题,但提前知道这可能会让我失去一些挫折和工作.通过http发布数据是否有大小限制?
本文说不:http: //www.netlobo.com/ie_form_submit.html
这个讨论是肯定的:http: //bytes.com/topic/php/answers/538226-what-maximum-limit-using-post-method
这一切都是我能在网上找到的.因此,请限制个人测试/验证号码的答案.
我想发回一个可能非常大的XML字符串(比如说高达5mb).
如果它有任何区别:浏览器将永远是IE(我们的产品需要它),帖子来自和httpService在flex,web服务器是php,DB是mySql.
我试图做POST与HttpURLConnection(我需要使用这种方式,不能使用HttpPost),我想参数添加到连接如
post.setEntity(new UrlEncodedFormEntity(nvp));
Run Code Online (Sandbox Code Playgroud)
哪里
nvp = new ArrayList<NameValuePair>();
Run Code Online (Sandbox Code Playgroud)
有一些数据存储在.我找不到如何将此添加ArrayList到我HttpURLConnection这里的方法:
HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
https.setHostnameVerifier(DO_NOT_VERIFY);
http = https;
http.setRequestMethod("POST");
http.setDoInput(true);
http.setDoOutput(true);
Run Code Online (Sandbox Code Playgroud)
这种尴尬的https和http组合的原因是不需要验证证书.但这不是问题,它可以很好地发布服务器.但是我需要用论据发帖.
有任何想法吗?
重复免责声明:
回到2012年,我不知道如何将参数插入到HTTP POST请求中.我一直在坚持,NameValuePair因为它是在教程中.这个问题可能看似重复,但是,我的2012年自我阅读了其他问题并且它没有使用NameValuePair.事实上,它并没有解决我的问题.