Php 无法通过CURL发布查询字符串

Php 无法通过CURL发布查询字符串,php,curl,Php,Curl,URL在接受异常后在浏览器中正常工作,但在curl中不工作 我的代码如下::: PHP代码: <?php $str1 = "https://50.60.70.80/servlet/API"; $url = $str1."?".$_SERVER['QUERY_STRING']; echo $url; $ch = curl_init(); curl_setopt($ch, CURLOPT_U

URL在接受异常后在浏览器中正常工作,但在curl中不工作

我的代码如下:::

PHP代码:

     <?php


        $str1 = "https://50.60.70.80/servlet/API";

        $url = $str1."?".$_SERVER['QUERY_STRING'];

        echo $url;


        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL,$url);

        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

        curl_setopt( $ch , CURLOPT_SSL_VERIFYHOST, true);


        $data = curl_exec($ch);

        echo curl_errno($ch);

        if (curl_errno($ch)) {
          echo 'Error: ' . curl_error($ch);
        }

        else {
                echo 'Success: '.$data;
        }

        curl_close($ch);


        ?>





    URL : https://50.60.70.80/servlet/API?userName=Test&password=pwd&message=My_Message&mobile=5555558888

Error getting while using through command line with "-k" and "-v":

 ***** About to connect() to 50.60.70.80 port 443 (#0)
*   Trying 50.60.70.80... connected
* Connected to 50.60.70.80 (50.60.70.80) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* warning: ignoring value of ssl.verifyhost
* skipping SSL peer certificate verification
* SSL connection using TLS_DHM_RSA_W1TH_AES_128_CBC_SEA
* Server certificate:
*       subject: E=abcd@mnmn.com,OU=lelna,O=teledna
*       start date: Mar 01 09:51:25 2013 GMT
*       expire date: Mar 01 09:51:25 2014 GMT
*       common name: (nil)
*       issuer: E=abcd@mnmn.com,OU=lelna,O=teledna
> GET /servlet/API?UserName=Test HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 50.60.70.80
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Pragma: no-cache
< Cache-Control: no-store
< Expires: Thu, 01 Jan 1970 00:00:00 GMT
< Transfer-Encoding: chunked
< Date: Thu, 08 Aug 2013 16:38:57 GMT
<
status=FAILED,transid=4526698561,reasoncode=201
* Connection #0 to host 50.60.70.80 left intact
* Closing connection #0****

网址:https://50.60.70.80/servlet/API?userName=Test&password=pwd&message=My_Message&mobile=5555558888
通过带“-k”和“-v”的命令行使用时获取错误:
*****即将连接()到50.60.70.80端口443(#0)
*正在尝试50.60.70.80。。。有联系的
*连接到50.60.70.80(50.60.70.80)端口443(#0)
*使用certpath:sql:/etc/pki/nssdb初始化NSS
*警告:忽略ssl.verifyhost的值
*跳过SSL对等证书验证
*使用TLS_DHM_RSA_W1TH_AES_128_CBC_SEA的SSL连接
*服务器证书:
*主题:E=abcd@mnmn.com,OU=lelna,O=teledna
*开始日期:2013年3月1日09:51:25 GMT
*过期日期:2014年3月1日09:51:25 GMT
*通用名称:(无)
*发行人:E=abcd@mnmn.com,OU=lelna,O=teledna
>GET/servlet/API?UserName=testhttp/1.1
>用户代理:curl/7.19.7(x86_64-redhat-linux-gnu)libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
>主持人:50.60.70.80
>接受:*/*
>
有人能帮忙吗? 我正在使用以下版本:: PHP版本——5.3.3 CURL版本--7.19.7 使用Apache,您需要添加以下内容

编辑:

curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

不工作怎么办?返回错误数据?崩溃?不返回任何数据。。实际上是从我的应用服务器/应用程序浏览器调用php文件。。如果来自浏览器,则浏览器超时。如果来自应用程序,则无法获得成功代码。尝试在命令行窗口中通过编写curl-k-v--url>>和url来执行相同的操作。。我得到的错误显示在上面的代码片段中。你应该对你的URL进行URL编码吗?在传递不可靠字符的情况下,这也许会有所帮助?通过传递curl_setopt($ch,CURLOPT_URL,urlencode($URL))来尝试;Getting error无法解析HostNameThreaded,原因是:$ch=curl_init();curl_setopt($ch,CURLOPT_URL,urlencode($str1));curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);curl_setopt($ch,CURLOPT_HTTPGET,1);卷曲设置($ch,卷曲设置桩,1);curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);curl_setopt($ch,CURLOPT_头,0);//不返回HTTP头curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_DNS_USE_GLOBAL_CACHE,false);curl_setopt($ch,CURLOPT_DNS_CACHE_TIMEOUT,2);curl_setopt($ch,CURLOPT_IPRESOLVE,curl_IPRESOLVE_V4)@KmrGtm,为什么在同一代码中使用HTTGET,1和POST,1?那该怎么办?@Shankar我一个接一个地用不同的脚本试了试。。得到同样的结果。。通过传递curl_setopt($ch,CURLOPT_URL,urlencode($URL))尝试;获取错误无法解析主机名–@KmrGtm,不,不要执行
urlencode
。似乎您正在通过GET发送数据,请尝试我上面编辑的答案。更重要的是,不要删除RETURNTRANSFER参数,它是必需的。谢谢@Sankar。。事实上,我还发现了一些错误。我之前尝试过的原始PHP代码也是正确的,运行良好。。但真正的问题是:我的php文件在Webserver中。如果iam使用此命令“phpURL.php”从Web服务器本身调用php文件,则运行正常。但在实际场景中,我想从应用服务器调用php文件。这就是造成问题的原因。有什么建议吗?