php - 如何在 PHP 中复制 cURL 和 python 的 'requests' 库?

标签 php python curl python-requests

我在 Python 中有以下代码运行良好(可以访问):

import requests
username = 'user'
password = 'pass'   

r = requests.get('https://internalwebsite/list', auth=(username, password))

j = r.json()

我如何用 PHP 编写它?

我尝试过类似的方法,但到目前为止没有成功:

$postvars = "username=user&password=pass";

$url = "https://internalwebsite/list";

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST, 1);                //0 for a get request
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);

$response = curl_exec($ch);
print "curl response is:" . $response;
curl_close ($ch);

常规 cURL 命令也能正常工作(有响应):

curl -u 'user:pass' https://internalwebsite/list

谢谢。

最佳答案

我相信您应该使用 CURLOPT_USERPWD,而不是为这个特定用例提交 postvars(基于您对我之前的解决方案的评论)

$url = "https://internalwebsite/list";

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_USERPWD, "myusername:mypassword");
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);

$response = curl_exec($ch);
print "curl response is:" . $response;
curl_close ($ch);

关于php - 如何在 PHP 中复制 cURL 和 python 的 'requests' 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41927596/

相关文章:

php - 在 WooCommerce 中以编程方式获取购物车税总额

Python 3.5 无法导入模块

python - 有没有办法在Python中实现全局计算属性?

python - 从 Python 连接到 google 数据存储

python - 使用脚本或工具仅获取 HTML <head> 元素

php - 当用户选择大于 2 mb 的图像时,php 的大小为零

php - 如何在使用 move_uploaded_file() 时在 PHP 中创建目标(文件夹)?

php - 如何创建指向 cms 文章的直接链接

c# - 带 Cookie 的 WebRequest HTTP POST(来自 curl 脚本的端口)

node.js - Lambda nodejs - 不支持带 libcurl 字节范围的媒体信息