注意: 如何在PHP curl中使用基本授权 对我不起作用.
试图卷入Electrum,但看起来我的访问被拒绝了.Electrum与php脚本位于同一服务器上.为了简化目的,我故意遗漏了钱包的任何命令.专注于先连接.
在终端尝试CURL时
curl --data-binary '{"id":"curltext","method":"addrequest","params":{"amount":"3.14","memo":"test"}}' http://user:pass@127.0.0.1:7777
Run Code Online (Sandbox Code Playgroud)
错误信息
curl: (7) Failed to connect to 127.0.0.1 port 7777: Connection refused
Run Code Online (Sandbox Code Playgroud)
编辑:现在终端上面的CURL命令工作
PHP
$password = 'root';
$username = 'password';
$URL='http://127.0.0.1'; //Curl into own machine local ip is needed.
$port = 7777;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$URL);
curl_setopt($ch, CURLOPT_PORT, $port);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$result=curl_exec($ch);
if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); }
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close ($ch);
echo "<br>";
var_dump($result);
echo "<br>";
var_dump($status_code);
Run Code Online (Sandbox Code Playgroud)
以下是我的错误
错误:
布尔(假)
INT(0)
以下是我的netstats.港口是开放和聆听.
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:7777 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
Run Code Online (Sandbox Code Playgroud)
PHP7, PHP-CURL & CURL
安装在Linux Fedora 27. Webserver类型上 Apache 2.4
Electrum 3.1.2
curl -v 127.0.0.1 7777
Run Code Online (Sandbox Code Playgroud)
返回:
Rebuilt URL to: 127.0.0.1/
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> Host: 127.0.0.1
> User-Agent: curl/7.55.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Wed, 04 Apr 2018 18:22:14 GMT
< Server: Apache/2.4.29 (Fedora)
< X-Powered-By: PHP/7.1.15
< Transfer-Encoding: chunked
< Content-Type: text/html; charset=UTF-8
<
/*index.php code*/
* Connection #0 to host 127.0.0.1 left intact
* Rebuilt URL to: 7777/
* Trying 0.0.30.97...
* TCP_NODELAY set
* Immediate connect fail for 0.0.30.97: Invalid argument
* Closing connection 1
curl: (7) Couldn't connect to server
Run Code Online (Sandbox Code Playgroud)
您需要另一个卷曲选项集:
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
Run Code Online (Sandbox Code Playgroud)
所以最终的顺序是:
$password = 'root';
$username = 'password';
$URL='http://127.0.0.1'; //Curl into own machine local ip is needed.
$port = 7777;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$URL);
curl_setopt($ch, CURLOPT_PORT, $port);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$result=curl_exec($ch);
if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); }
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close ($ch);
echo "<br>";
var_dump($result);
echo "<br>";
var_dump($status_code);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
430 次 |
最近记录: |