Php curl эквивалент в Python

У меня есть запрос 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

Спасибо заранее

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]