javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

php-贝宝访问-SSL证书:无法获取本地发行者证书

我正在使用cUrl和PHP向服务器发出请求(用于PayPal访问)

Paypal开发者网站从未提及使用PayPal访问API需要SSL证书,但是我用来请求令牌的代码如下:

$options = array(
                CURLOPT_URL => $url,
                CURLOPT_POST => 1,
                CURLOPT_VERBOSE => 1,
                CURLOPT_POSTFIELDS => $postvals,
                CURLOPT_RETURNTRANSFER => 1,
                CURLOPT_SSLVERSION => 3
);

curl_setopt_array($ch, $options);

$response = curl_exec($ch); 
echo curl_error($ch);

此回显输出以下错误:

SSL certificate problem: unable to get local issuer certificate

我的问题是:

1)如果我只需要获取用户电子邮件,我是否需要SSL才能使用贝宝访问权限?

2)如果我不需要SSL,为什么会发生此错误?

PS:端点如下:[https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/tokenservice]

trans by 2020-08-11T23:25:52Z

macos-如何修复curl:(60)SSL证书:无效的证书链

我在Mac OSX 10.9(Mavericks)上运行curl https://npmjs.org/install.sh | sh时遇到以下错误:

install npm@latest
curl: (60) SSL certificate problem: Invalid certificate chain
More details here: http://curl.haxx.se/docs/sslcerts.html

我该如何解决?

trans by 2020-08-09T04:58:08Z

winapi-在Windows上使用SSL支持构建libcurl

我在Win32 C ++应用程序中使用libcurl。

我将curllib.vcproj项目添加到我的解决方案中,并将其他项目设置为依赖它。

如何在启用SSL支持的情况下构建它?

trans by 2020-08-07T08:02:17Z

linux-在bash脚本中使用curl并获取curl:(3)在URL中发现非法字符

因此,我有一个非常简单的bash脚本,该脚本会卷曲到头的身份验证服务器。 标头网址被写入var,然后在下一个curl调用中使用。 在第一个curl调用中使用var集时,我得到“ curl:(3)在URL中发现非法字符”。 我能够回显var,并且看起来一切都很好,甚至可以重置var(在下面的示例中),并且可以正常工作。

Bash脚本

URL=$(curl -i -X GET -H "X-Auth-User: MyUserna,e" -H "X-Auth-Key: MyAPIKey" "https://urlToAuthServer.tld/auth/v1.0/" | grep "X-Storage-Url:" | awk '{print $2}')

curl -X GET -H "X-Auth-Token: MyAuthTok" "${URL}/folder/myfile.txt" -o ./myfile.txt

运行上面的示例时,我得到:

curl: (3) Illegal characters found in URL

URL var看起来像这样(没有非法字符)

https://somesecureurl.com/auth/AUTH_67383834-45245453-g34g34t5-34534

当我在终端中执行此操作时:

$ URL = $(curl -i -X GET -H“ X-Auth-User:MyUserna,e” -H“ X-Auth-Key:MyAPIKey”“ [https://urlToAuthServer.tld/auth/v1.0 /“] | grep” X-Storage-Url:“ | awk'{print $ 2}')

$ echo $ URL

[HTTPS://some secure URL.com/AU TH/AU TH_67383834-45245453-个34个34他5-34534]

现在,我复制并粘贴字符串,然后将其分配给URL(同样在终端中):

>$ URL="https://somesecureurl.com/auth/AUTH_67383834-45245453-g34g34t5-34534"
>$ curl -X GET -H "X-Auth-Token: MyAuthTok" "${URL}/folder/myfile.txt" -o ./myfile.txt

有用。

那么,为什么在第一个示例中出现“ curl:(3)URL中发现非法字符”错误?

更新资料我跑了这个:printf %s "$URL" | xxd

这是输出(地址变了,您就知道了)

0000000: 6874 7470 733a 2f2f 6461 6c30 352e 6f62  https://server.ob
0000010: 6a65 6374 7374 6f72 6167 652e 736f 6674  jectstorage.lite
0000020: 6c61 7965 722e 6e65 742f 7631 2f41 5554  sabers.com/v1/AUT
0000030: 485f 6665 3235 3339 3434 2d38 6433 322d  H_aE2563981-7d32-
0000040: 3432 3138 2d61 6566 632d 6665 6638 3465  4201-bdoi-fef94a
0000050: 6166 3331 6232 0d                        ag11c8.
trans by 2020-08-06T07:27:58Z

curl:(6)无法解析主机:应用程序

正在获取网址:(6)此命令后无法解析主机:应用程序错误:

curl -i -H 'Content-Type: application/json' -d '{"Code":"FR","Name":"France"}' http://127.0.0.1:8080/countries

完整的错误日志:

curl: (6) Could not resolve host: application
HTTP/1.1 415 Unsupported Media Type
Content-Type: application/json; charset=utf-8
X-Powered-By: go-json-rest
Date: Sat, 02 Apr 2016 05:31:20 GMT
Content-Length: 73

{
"Error": "Bad Content-Type or charset, expected 'application/json'"
}

这个命令怎么了?

编辑:

我解决了在Windows中这样编辑的问题:"{/"Code/":/"FR/"}"

trans by 2020-08-05T12:52:46Z

php-JAVA中的cURL等效项

我的任务是为开源cURL应用程序编写身份验证组件。 我们有一个内部认证小部件,它使用29944892777504450450。我有一些示例php代码,该代码访问widget,该代码使用cURL处理传输。

我的问题是,是否有cURLJAVA的端口,或更妙的是,什么基本软件包可以使我足够接近以完成任务?

更新:

简而言之,我想在JAVA中复制的代码:

$cp = curl_init();
$my_url = "https://" . AUTH_SERVER . "/auth/authenticate.asp?pt1=$uname&pt2=$pass&pt4=full";
curl_setopt($cp, CURLOPT_URL, $my_url);
curl_setopt($cp, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($cp);
curl_close($cp);

希思,我认为您的方向正确,我认为我最终将使用HttpsURLConnection,然后从响应中选择我需要的内容。

trans by 2020-08-03T02:53:13Z

php-如何从CURL解析json响应

我正在使用CURL发送请求。 响应数据类型为json。如何解析此数据并将其插入数据库?

<?php

$url = 'http://sms2.cdyne.com/sms.svc/SimpleSMSsendWithPostback?        PhoneNumber=18887477474&Message=test&LicenseKey=LICENSEKEY';

$cURL = curl_init();

curl_setopt($cURL, CURLOPT_URL, $url);
curl_setopt($cURL, CURLOPT_HTTPGET, true);

curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Accept: application/json'
));

$result = curl_exec($cURL);

curl_close($cURL);



print_r($result);

?>

JSON输出:

{
    "Cancelled": false,
    "MessageID": "402f481b-c420-481f-b129-7b2d8ce7cf0a",
    "Queued": false,
    "SMSError": 2,
    "SMSIncomingMessages": null,
    "Sent": false,
    "SentDateTime": "/Date(-62135578800000-0500)/"
}
trans by 2020-07-28T17:14:43Z

用PHP和CURL发布多维数组

我无法通过CURL将表单数据发布到位于不同主机上的接收PHP脚本中。

我收到CURLOPT_POSTFIELDS错误

这是我发布的数组的CURLOPT_POSTFIELDS

Array
(
    [name] => Array
    (
        [0] => Jason
        [1] => Mary
        [2] => Lucy
    )
    [id] => 12
    [status] => local
    [file] => @/test.txt
)

这是发生错误的行:

curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post);

第三个参数必须是一个数组,因为当我通过同一数组发送文件时,我需要将CURLOPT_POSTFIELDS标头设置为multipart/form-data,因此无法将数组转换为查询字符串或使用http_build_query()

另外,我无权访问接收主机上的代码,因此无法序列化和反序列化数组。

我假设名称键的值是数组是导致此错误的原因,我还假设CURLOPT_POSTFIELDS不支持多维数组。 还有其他解决方法还是我注定要失败?

提前致谢!

trans by 2020-07-27T14:26:40Z

curl:(35)错误:1408F10B:SSL例程:ssl3_get_record:版本号错误

当我尝试使用curl(或libcurl)连接到任何服务器(例如google.com)时,出现错误消息:

curl:(35)错误:1408F10B:SSL例程:ssl3_get_record:版本号错误

详细输出:

$ curl www.google.com --verbose  
* Rebuilt URL to: www.google.com/  
* Uses proxy env variable no_proxy == 'localhost,127.0.0.1,localaddress,.localdomain.com'  
* Uses proxy env variable http_proxy == 'https://proxy.in.tum.de:8080'  
*   Trying 131.159.0.2...  
* TCP_NODELAY set  
* Connected to proxy.in.tum.de (131.159.0.2) port 8080 (#0)  
* successfully set certificate verify locations:  
*   CAfile: /etc/ssl/certs/ca-certificates.crt  
  CApath: none  
* TLSv1.3 (OUT), TLS handshake, Client hello (1):  
* error:1408F10B:SSL routines:ssl3_get_record:wrong version number  
* Closing connection 0  
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number'  

出于某种原因,curl似乎使用TLSv1.3,即使我通过--tlsv1.2命令强制它使用TLSv1.2(它仍然会打印TLSv1.3(OUT),...”我正在使用Curl和OpenSSL的最新版本:

$ curl -V  
curl 7.61.0-DEV (x86_64-pc-linux-gnu) libcurl/7.61.0-DEV OpenSSL/1.1.1 zlib/1.2.8  
Release-Date: [unreleased]  
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp  
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy  

我认为这是与我安装程序有关的问题。有人可以向我解释此错误消息的含义吗?

trans by 2020-07-24T19:07:50Z

通过cURL从PHP中的POST表单发送文件

我正在编写一个API,并且想处理从script.php784表单上传的文件。该表单的标记没有什么太复杂的:

<form action="" method="post" enctype="multipart/form-data">
  <fieldset>
    <input type="file" name="image" id="image" />
    <input type="submit" name="upload" value="Upload" />
  </fieldset>
</form>

但是,我很难理解如何处理此服务器端并与cURL请求一起发送。

我熟悉使用带有数据数组的cURL发送script.php请求,并且在上载文件时阅读的资源告诉我在文件名前加上$post符号。 但是这些相同的资源具有硬编码的文件名,例如

$post = array(
    'image' => '@/path/to/myfile.jpg',
    ...
);

那么这是哪个文件路径? 我在哪里可以找到它? 会是script.php吗?在这种情况下,我的$post数组应该看起来像这样:

$post = array(
    'image' => '@' . $_FILES['image']['tmp_name'],
    ...
);

还是我走错路了? 任何建议将不胜感激。

编辑:如果有人可以给我一个代码片段,其中包含以下代码片段,那么我将不胜感激。 我主要关注的是我将要作为cURL参数发送的内容,以及如何在接收脚本中使用这些参数的示例(出于参数的缘故,将其称为script.php)。

我有这个网络表格:

<form action="script.php" method="post" enctype="multipart/form-data">
  <fieldset>
    <input type="file" name="image />
    <input type="submit" name="upload" value="Upload" />
  </fieldset>
</form>

这将是script.php

if (isset($_POST['upload'])) {
    // cURL call would go here
    // my tmp. file would be $_FILES['image']['tmp_name'], and
    // the filename would be $_FILES['image']['name']
}
trans by 2020-07-24T08:40:05Z

linux-使用curl来获得成功

为什么这不起作用:

curl -X HEAD http://www.google.com

但是这些都很好用:

curl -I http://www.google.com

curl -X GET http://www.google.com
trans by 2020-07-22T02:47:19Z

bash-如何从Chrome复制Cookie?

我正在使用bash张贴到要求我首先登录的网站。 因此,我需要使用登录cookie发送请求。 因此,我尝试登录并保留cookie,但是由于站点使用javascript以一种非常奇怪的方式对密码进行哈希处理而无法正常工作,因此我将只从Chrome中获取站点的登录cookie。 如何从Chrome取得Cookie并为Curl格式化?

我正在尝试这样做:

curl --request POST -d "a=X&b=Y" -b "what goes here?" "site.com/a.php"
trans by 2020-07-21T09:26:51Z

curl-对curl_global_init,curl_easy_init和其他函数的未定义引用(C)

我正在尝试在C中使用Curl。

我访问了Curl官方页面,并复制了示例源代码。

以下是链接:[http://curl.haxx.se/libcurl/c/sepheaders.html]

当我使用命令“ gcc test.c”运行此代码时,

控制台显示如下消息。

/tmp/cc1vsivQ.o: In function `main':
test.c:(.text+0xe1): undefined reference to `curl_global_init'
test.c:(.text+0xe6): undefined reference to `curl_easy_init'
test.c:(.text+0x10c): undefined reference to `curl_easy_setopt'
test.c:(.text+0x12e): undefined reference to `curl_easy_setopt'
test.c:(.text+0x150): undefined reference to `curl_easy_setopt'
test.c:(.text+0x17e): undefined reference to `curl_easy_cleanup'
test.c:(.text+0x1b3): undefined reference to `curl_easy_cleanup'
test.c:(.text+0x1db): undefined reference to `curl_easy_setopt'
test.c:(.text+0x1e7): undefined reference to `curl_easy_perform'
test.c:(.text+0x1ff): undefined reference to `curl_easy_cleanup'

我不知道该怎么解决。

trans by 2020-07-20T16:48:59Z

如何在Django,csrf令牌和POST请求中使用curl

我正在使用curl测试我的Django表单之一。 我尝试过的呼叫(每个呼叫都有错误,并且在多行代码中都有可读性):

(1):

curl
-d "{\"email\":\"test@test.com\"}"
--header "X-CSRFToken: [triple checked value from the source code of a page I already loaded from my Django app]"
--cookie "csrftoken=[same csrf value as above]"
http://127.0.0.1:8083/registrations/register/

(带有http标头和Cookie中的X-CSRFToken)会导致出现400错误,并且不返回任何数据。

(2):

curl
-d "{a:1}"
--header "X-CSRFToken:[as above]"
--cookie "csrftoken=[as above];sessionid=[from header inspection in Chrome]"
http://127.0.0.1:8083/registrations/register/

(与(1)中一样,但标头属性声明中没有空格,并且cookie中也包含X-CSRFToken)会导致相同的400错误,而不会返回任何数据。

(3):

curl
-d "{a:1}"
--header "X-CSRFToken:[as above]"
http://127.0.0.1:8083/registrations/register/

(只有带有X-CSRFToken的http标头,没有cookie)会导致错误代码403,并显示消息:未设置CSRF cookie。

我该如何测试卷曲的形式? 除了Cookie值和http标头,我没有考虑哪些因素?

trans by 2020-07-19T21:50:08Z

php-如何从u检查文件是否存在

我需要检查远程服务器上是否存在特定文件。 使用is_file()file_exists()不起作用。 有什么想法如何快速轻松地做到这一点?

trans by 2020-07-13T20:27:49Z

http-在两个curl请求之间保存cookie

我知道使用cURL我可以使用来查看我收到的cookie /标头

curl --head www.google.com

我知道我可以使用添加标题到我的请求

curl --cookie "Key=Value" www.google.com

我目前正在测试需要持久性Cookie的问题,并且其中可能有很多。

如何有效地保留两个cURL请求之间的cookie?

如果可能,请使用临时文件进行存储。

trans by 2020-07-10T01:17:24Z

Web服务-如何获取有关发送的PHP curl请求的信息

我正在尝试调试对Web服务“获取令牌”端点的curl请求。

我不是100%确信URL和身份验证信息已正确写入curl句柄。

我正在尝试使用host捕获发送的请求,但是并没有提供太多信息。 有没有一种方法可以对实际的卷曲请求进行更深入的诊断?

这是代码:

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");       
curl_setopt($ch, CURLOPT_HEADER, 1); // just getting header to see if we got an auth token
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_setopt($ch, CURLOPT_NOBODY, 1); 
curl_setopt($ch, CURLINFO_HEADER_OUT, 1); // capture the header info
curl_setopt($ch, CURLOPT_VERBOSE, 1); // turn verbose on    
// execute the curl request 

$rh = fopen("request.txt", "w"); // open request file handle
$verbose = fopen('php://temp', 'rw+');
curl_setopt($ch, CURLOPT_STDERR, $verbose);

curl_exec($ch); // execute request

$sent_request = curl_getinfo($ch, CURLINFO_HEADER_OUT);
fwrite($rh, $sent_request); // save the request info
fclose($rh);
!rewind($verbose);
$verboseLog = stream_get_contents($verbose);

echo "Verbose information:\n<pre>", htmlspecialchars($verboseLog), "</pre>\n";

所有这些都可以正常工作,但是每次都会返回401-API管理员向我保证我拥有的用户名/密码正确。

我想知道我是否以某种方式弄错了URL值,或者没有发送正确的用户名/密码,但是此信息未打印在保存的请求数据中:

HEAD /export/auth HTTP/1.1
Authorization: Basic Y2FpcmRzdW5mYTpENWlAaVM4cw==
Host: webservices.mycompany.com
Accept: */*

您会看到未记录用户名/密码(出于安全考虑,我认为)。 我认为端点URL是host值加上HEAD值的开头,所以webservices.mycompany.com/export/auth

“详细信息”语句不打印任何内容。 不知道为什么要这样!

感谢帮助。

编辑:从Php添加了详细模式-Debugging Curl感谢评论者immulatin

trans by 2020-07-09T01:09:13Z

linux-如何使用curl或wget将文件下载到目录中?

我知道我可以使用以下2条命令来下载文件:

curl -O example.com/file.zip
wget example.com/file.zip

但我希望他们进入特定目录。 因此,我可以执行以下操作:

curl -o mydir/file.zip example.com/file.zip
wget -O mydir/file.zip example.com/file.zip

有没有一种方法不必指定文件名? 像这样:

curl -dir mydir example.com/file.zip
trans by 2020-07-07T23:45:09Z

bash-如何检查远程git存储库URL的有效性?

在bash脚本中,最简单的方法是验证git URL指向有效的git repo以及该脚本有权从中读取内容吗?

应支持的协议为git@https://git://。在git://协议上卷曲失败。

git@github.com:UserName/Example.git
https://UserName@github.com/UserName/Example.git
git://github.com/UserName/Example.git

注意:我不是要检查URL在语法上是否正确,我需要验证在bash脚本中输入的URL位置是否存在回购。

trans by 2020-07-05T17:22:46Z

php curl:如何完全像Web浏览器一样模拟get请求?

有一些网站,当我在浏览器上打开特定的Ajax请求时,会得到结果页面,但是当我尝试使用curl加载它们时,我从服务器收到错误消息。

我如何正确模拟对将模拟浏览器的服务器的get请求?

那就是我在做什么:

$url="https://new.aol.com/productsweb/subflows/ScreenNameFlow/AjaxSNAction.do?s=username&f=firstname&l=lastname";
ini_set('user_agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT
5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)');
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
print $result;
trans by 2020-07-04T17:57:29Z

1 2 3 4 5 6 7 8 9 10 下一页 共10页