Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
curl命令到wp_远程_请求命令_Curl_Wordpress - Fatal编程技术网

curl命令到wp_远程_请求命令

curl命令到wp_远程_请求命令,curl,wordpress,Curl,Wordpress,我正在尝试将curl命令转换为wp_remote_request命令。 下面是curl命令: curl -v -H "Accept:application/json" -H "Content-type:application/json" -X POST -d '{"user":{"password":"***","email":"***"}}' http://***/users/sign_in.json 这是我的PHP $t = array( "user" => array

我正在尝试将curl命令转换为wp_remote_request命令。
下面是curl命令:

curl -v 
-H "Accept:application/json" -H "Content-type:application/json" 
-X POST -d '{"user":{"password":"***","email":"***"}}'
http://***/users/sign_in.json
这是我的PHP

$t = array(
     "user" => array(
               "password" => "***", 
               "email" => "***"));

$args = array (      
    'headers' => 
    array (
        'Accept'       => 'application/json',
        'Content-Type' => 'application/json',
    ),
    'method'    => 'POST',
    'body'      => json_encode( $t )
);

$response = wp_remote_request( 
           'http://***/users/sign_in.json' , $args );
问题是它根本不起作用。根据我在“body”中输入的内容,我会得到不同的错误,但通常只是一个“404”。我能想到的唯一一件事是curl-d以某种方式对请求进行编码,但我不知道如何进行编码。有什么想法吗?谢谢

顺便说一下,下面的工作很好,但我还是想使用wp\u remote\u请求

$t = array('user' => array('password' => '***',  
                           'email'    => '***'));
$curl = curl_init();

curl_setopt_array( $curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://***/users/sign_in.json',
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => json_encode($t),
    CURLOPT_HTTPHEADER => array('Content-Type: application/json')
));

$resp = curl_exec( $curl );
curl_close( $curl );

昨晚我在和wp_远程请求抗争。我的身份验证在标题中,如果您说curl_setopt_数组版本有效,那么我们的问题就不同了,但请尝试包含内容长度

$headers = array(
        'Authorization'  => 'Basic ' . base64_encode( $this->key.':'.$this->password ),
        'Accept'       => 'application/json',
        'Content-Type'   => 'application/json',
        'Content-Length' => strlen( json_encode($body) )
    );

    // Setup variable for wp_remote_post
    $post = array(
        'method'    => 'POST',
        'headers'   => $headers,
        'body'      => json_encode($body)
    );

您不想对主体进行json_编码。不确定该方法是否会自动执行该操作或执行什么操作(看起来很奇怪)。从body变量中删除json_编码,它应该可以工作