2017-02-19 94 views
1

我一直在试图每周都去尝试和使用PHP卷曲能够连接到我的网络服务,但是,我不能让它工作,所以我试图用卷曲的命令行让我吃惊..有效。转换Linux的卷曲PHP

下面是我使用Linux的卷曲使用的命令:

curl -k -i -H "Content-type: application/x-www-form-urlencoded" -c cookies.txt -X POST https://<host>/appserver/j_spring_security_check -d "j_username=admin&j_password=demoserver"

你如何将它转换为PHP代码?

PS。我是新手,刚刚接触过不到一个月的PHP,请原谅我! :d

+1

[将命令行cURL转换为PHP cURL]可能重复(http://stackoverflow.com/questions/1939609/convert-command-line-curl-to-php-curl) – gaurav

回答

1

您提出以下Linux终端curl命令如何与PHP卷曲的选项:

curl -k -i -H "Content-type: application/x-www-form-urlencoded" -c cookies.txt -X POST https://192.168.100.100:444/appserver/j_spring_security_chec‌​k -d "j_username=admin&j_password=demoserver"

这里是上面的选项/标志的列表:

  • - K = CURLOPT_SSL_VERIFYPEER:假
  • -i = CURLOPT_HEADER:真
  • -H = CURLOPT_HTTPHEADER
  • -C = CURLOPT_COOKIEJAR + CURLOPT_COOKIEFILE
  • -X POST = CURLOPT_POST:真
  • -d = CURLOPT_POSTFIELDS

这将导致完全以下:

<?php 
    $ch = curl_init(); 
    $url = "https://192.168.100.100:444/appserver/j_spring_security_chec‌​k"; 
    $postData = 'j_username=admin&j_password=demoserver'; 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_POST, 1); // -X 
    curl_setopt($ch, CURLOPT_POSTFIELDS,$postData); // -d 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     'application/x-www-form-urlencoded' 
    )); // -H 
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt'); // -c 
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt'); // -c 
    curl_setopt($ch, CURLOPT_HEADER, true); // -i 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // -k 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // see comment 
    echo curl_exec ($ch); 
    curl_close ($ch); 

我希望这帮助你。

+0

感谢@mevdshchee,您提供了吨帮助!我几乎在那里..你有什么想法为什么PHP卷曲不会像Linux卷曲一样通过?这是我执行linux curl时的结果。 'HTTP/1.1 302实测值 日期:星期四,2017年2月16日19点12分22秒GMT 服务器:Apache/2.2.26(UNIX)的mod_ssl/2.2.25的OpenSSL/1.0.1e的mod_jk/1.2.37 套装 - Cookie:JSESSIONID = 9D1761E49919B0FCE8E077E70E250749;路径= /应用服务器/;仅Http 地点:https://192.168.100.100:444/appserver/portal/welcome;jsessionid=9D1761E49919B0FCE8E077E70E250749 的Content-Length:0 访问控制允许来源:* 内容类型:text/plain' –

+0

你可能需要添加一个'CURLOPT_FOLLOWLOCATION'选项来跟踪重定向。我将这添加到代码中。 – mevdschee