在python中的Php curl等价物

时间:2016-11-17 09:53:57

标签: php python curl urllib2

我有一个php curl请求,它给了我一个成功的回复。我想在python中转换它。

define("uname", "myusername");
define("pwd", "password");
define("turl", "https://mytestapp.com/api/v1/");
$Params = array(
    "subject" => "test subject",
    "contents" => "This is a test case.",
    "requester_id" => "2",
    "channel" => "MAIL",
    "channel_id" => "1" 
);
$json = json_encode($Params);

$ch = curl_init();
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10 );
curl_setopt($ch, CURLOPT_URL, turl);
curl_setopt($ch, CURLOPT_USERPWD, uname.":".pwd);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
if($output=== FALSE) {
    die(curl_error($ch));
}
curl_close($ch);
print_r(json_decode($output, true))

尝试使用pycurl使用相同的curl选项,但最终没有用,它给出了错误的请求错误。我无法追踪那里的错误。

import pycurl
import json
import urllib    
params = [{"subject" : "test subject",
    "contents" : "This is a test case.",
    "requester_id" : "2",
    "channel" : "MAIL",
    "channel_id" : "1"  
           }]

json_to_send = json.dumps(params)
curlClient = pycurl.Curl()
curlClient.setopt(curlClient.FOLLOWLOCATION,True)
curlClient.setopt(curlClient.URL, url)
curlClient.setopt(curlClient.MAXREDIRS, 10)
curlClient.setopt(curlClient.USERPWD,       "myusername:mypassword")
curlClient.setopt(curlClient.SSL_VERIFYPEER, False)
curlClient.setopt(curlClient.POSTFIELDS, json_to_send)
curlClient.setopt(curlClient.CUSTOMREQUEST, "POST")
curlClient.setopt(curlClient.POST, True)
curlClient.setopt(curlClient.FAILONERROR, True)
curlClient.perform()

有没有更好的替代方法在python中复制相同的

谢谢你

0 个答案:

没有答案