我试图使用curl
将一些值发布到网址//set up a connection variable for the page you will post data to
$curl_connection = curl_init('https://payment.teqwerty.com/NetBanking/Pay.jsp?');
//curl basic setup
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
//$_POST variables to pass
$post_items[] = 'MerchantId='.strip_tags($merchantId);
$post_items[] = 'Password='.strip_tags($Password);
$post_items[] = 'RemoteIP='.strip_tags($RemoteIP);
$post_items[] = 'Amount='.strip_tags($Amount);
$post_items[] = 'BankId='.strip_tags($BankId);
$post_items[] = 'Checksum='.strip_tags($checksum);
$post_items[] = 'Name='.strip_tags($Name);
$post_items[] = 'mobileNo='.strip_tags($mobileNo);
$post_items[] = 'Email='.strip_tags($Email);
//format the $post_items into a string
$post_string = implode ('&', $post_items);
//send the $_POST data to the new page
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
$result = curl_exec($curl_connection);
curl_close($curl_connection);
我是新来的卷曲,这段代码,我从谷歌搜索。但它似乎没有工作。但我有一个工作代码
$parameters='MerchantId='.$merchantId.'&Password='.$Password.'&ReferenceNo='.$ReferenceNo.'&RemoteIP='.$RemoteIP.'&Amount='.$Amount.'&BankId='.$BankId.'&Checksum='.$checksum.'&Name='.$Name.'&MobileNo='.$MobileNo.'&Email='.$Email;
//echo "para is <br>".$parameters;
//set POST variables
$url = 'https://payment.teqwerty.com/NetBanking/Pay.jsp?'.$parameters;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$auth = curl_exec($curl);
以上工作正常。但有时候这会卡住而且不工作。我想把参数发布到那个url.I无论如何也不会得到任何变量。为什么第一个代码不起作用。我在做什么它以错误的方式?
答案 0 :(得分:0)
这个答案是关于以下评论..
@ShankarDamodaran ..它正在工作,但有时会卡住。我 无法找出原因。有时候它运作良好
然后肯定是网址编码问题。
这样做..
$parameters='MerchantId='.$merchantId.'&Password='.$Password.'&ReferenceNo='.$ReferenceNo.'&RemoteIP='.$RemoteIP.'&Amount='.$Amount.'&BankId='.$BankId.'&Checksum='.$checksum.'&Name='.$Name.'&MobileNo='.$MobileNo.'&Email='.$Email
$parameters = urlencode($parameters); //<--- URL Encode it before sending to the cURL
答案 1 :(得分:0)
因为,您可以防止SSL验证为false。 curl_setopt($ curl,CURLOPT_SSL_VERIFYPEER,false); 然后,我想你还必须提到SSL版本,即curl_setopt($ init_curl,CURLOPT_SSLVERSION,3);
这只是一个想法。因为我之前也遇到过这样的问题。然后,我提到了SSL版本,它运行良好..
答案 2 :(得分:0)
您应该只有一种方式发送http数据POST或GET。第一种方法使用POST,而第二种方法使用GET。正如你所说,第一种方法不起作用,所以很明显你的请求必须只通过GET请求发送。
对于有时无法正常工作的问题,您必须检查响应标头/数据以获取更多信息。
仅限检查标题使用
curl_setopt($ch, CURLOPT_HEADER, 1);
$headers = curl_getinfo($ch);