我们如何在NodeJS中发出这样的HTTP请求?示例或模块表示赞赏.
curl https://www.googleapis.com/urlshortener/v1/url \
-H 'Content-Type: application/json' \
-d '{"longUrl": "http://www.google.com/"}'
Run Code Online (Sandbox Code Playgroud) 使用Apache或Ngnix我总是根据实际项目创建开发站点,例如http://project1.loc,在添加到我的.hosts文件后,浏览器使用没有问题.
但是,当我尝试向http://project1.loc/post.json同一个URL 发出一个cURL request()时,除了超时之外我什么也得不到.我假设cURL不关心我的自定义主机,直接进入名称服务器获取它的信息.
我怎样才能解决这个问题?
更新 我设置了一个自定义标题"HOST:http://project1.loc ",现在我得到了400个错误 - 但它们是瞬时的,所以我假设cURL至少使用了hosts文件......
由于某种原因,输出总是被打印到终端,无论我是通过2>或>还是重定向它.有办法解决这个问题吗?为什么会这样?
我以前有ElasticSearch 5.2,刚刚升级到6.0.
我试图在这里按照指南创建一个索引模板,但是得到了错误
Content-Type header [application/x-www-form-urlencoded] is not supported
Run Code Online (Sandbox Code Playgroud)
我的疑问是
curl -X PUT localhost:9200/_template/template_1 -d '
{
"index_patterns": ["te*", "bar*"],
"mappings": {
"type1": {
"properties": {
"host_name": {
"type": "keyword"
}
}
}
}
}'
Run Code Online (Sandbox Code Playgroud) 我正在学习Apigility(Apigility docu - > REST Service Tutorial)并尝试通过cURL发送带有基本身份验证的POST请求:
$ curl -X POST -i -H "Content-Type: application/hal+json" -H "Authorization: Basic YXBpdXNlcjphcGlwd2Q=" http://apigilityhw.sandbox.loc/status
Run Code Online (Sandbox Code Playgroud)
YXBpdXNlcjphcGlwd2Q=是我的凭据的基本64编码字符串apiuser:apipwd.凭证保存在/data/htpasswd(apiuser:$apr1$3J4cyqEw$WKga3rQMkxvnevMuBaekg/)中.
看起来像这样:
HTTP/1.1 401 Unauthorized
Server: nginx/1.4.7
Date: Mon, 22 Sep 2014 07:48:47 GMT
Content-Type: application/problem+json
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.5.12-1~dotdeb.1
WWW-Authenticate: Basic realm="api"
Run Code Online (Sandbox Code Playgroud)
这里的错误在哪里?如何让它工作?
我目前正在开发一个REST-API,它为开发环境提供HTTP-Basic保护.由于真正的身份验证是通过令牌完成的,我仍然试图找出,如何发送两个授权头.
我试过这个:
curl -i http://dev.myapp.com/api/users \
-H "Authorization: Basic Ym9zY236Ym9zY28=" \
-H "Authorization: Bearer mytoken123"
Run Code Online (Sandbox Code Playgroud)
我可以为我的IP禁用HTTP身份验证,但由于我通常在具有动态IP的不同环境中工作,这不是一个好的解决方案.我错过了什么吗?
rest curl restful-authentication basic-authentication access-token
我使用Postman来测试一些针对API服务器的Curl请求.API开发人员给了我们curl命令,但是我不能用Postman发送它.如何提出这样的要求?
curl -X POST "https://api-server.com/API/index.php/member/signin" -d "{"description":"","phone":"","lastname":"","app_version":"2.6.2","firstname":"","password":"my_pass","city":"","apikey":"213","lang":"fr","platform":"1","email":"email@example.com","pseudo":"example"}"
--0xKhTmLbOuNdArY
Content-Disposition: form-data; name="userfile"; filename="profil.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: binary
<ffd8ffe0 00104a46 49460001 01010048 ... a00fffd9>
—0xKhTmLbOuNdArY—
Run Code Online (Sandbox Code Playgroud) 出于某种原因,我无法使用HTTPS进行CURL.一切都很好,直到我运行curl库的升级.现在,我在尝试执行CURL请求时遇到此响应: SSL CA证书问题(路径?访问权限?)
根据此处发布的有关相关问题的建议,我尝试执行以下操作:
禁用主机和对等方的验证
curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
Run Code Online (Sandbox Code Playgroud)启用CURLOPT_SSL_VERIFYPEER并指向从http://curl.haxx.se/docs/caextract.html下载的cacert.pem
curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($cHandler, CURLOPT_CAINFO, getcwd() . "/positiveSSL.ca-bundle");
Run Code Online (Sandbox Code Playgroud)我还尝试使用positiveSSL.ca-bundle做同样的事情,它是作为我尝试连接的服务器的捆绑CA证书提供的.
使用curl.cainfo=cacert.pem(在同一目录中的文件并通过apache访问)编辑php ini设置
重命名/etc/pki/nssdb为/etc/pki/nssdb.old
不幸的是,以上都没有能够解决我的问题,我经常遇到SSL CA证书(路径?访问权限?)消息的问题.
我首先不需要这个验证(我知道安全问题).
有人有任何其他建议吗?
UPDATE
在更新到最新的库并重新启动整个盒子之后,不仅仅是我正在做的apache似乎现在再次正在工作!
我写了这段简单的代码:
$ch = curl_init();
//Set options
curl_setopt($ch, CURLOPT_URL, "http://www.php.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$website_content = curl_exec ($ch);
Run Code Online (Sandbox Code Playgroud)
在我的情况$website_content下来了false.任何人都可以建议/建议可能出错的事情吗?
访问REST API时,这两段代码有何不同?
$result = file_get_contents('http://api.bitly.com/v3/shorten?login=user&apiKey=key&longUrl=url');
Run Code Online (Sandbox Code Playgroud)
和
$ch = curl_init('http://api.bitly.com/v3/shorten?login=user&apiKey=key&longUrl=url');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
Run Code Online (Sandbox Code Playgroud)
从判断起,它们都产生相同的结果
print_r(json_decode($result))
Run Code Online (Sandbox Code Playgroud) curl ×10
php ×3
access-token ×1
apigility ×1
content-type ×1
hosts ×1
http ×1
http-put ×1
httprequest ×1
https ×1
linux ×1
mime-types ×1
node.js ×1
post ×1
postman ×1
rest ×1
ssl ×1
unix ×1