代码之家  ›  专栏  ›  技术社区  ›  user7903682

405错误php get请求

  •  0
  • user7903682  · 技术社区  · 7 年前

    $result = "SOMETHING"
    $kahootId = '0c17fb60-76c6-424c-9326-d1154cbc70d3';
    $pageUrl = 'https://create.kahoot.it/rest/kahoots/' . $kahootId;
    $quizheader = array(); 
    $quizheader[] = 'content-type: application/json';
    $quizheader[] = 'authorization: ' . $result;
    
    curl_setopt($ch, CURLOPT_URL, $pageUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); 
    curl_setopt($ch, CURLOPT_HEADER,$quizheader);
    
    $store2 = curl_exec($ch);
    print_r($store2);
    curl_close($ch);
    

    此代码返回:

    HTTP/1.1 405 Method Not Allowed
    Server: openresty/1.11.2.2
    Date: Tue, 11 Jul 2017 20:53:03 GMT
    Content-Type: application/json
    Content-Length: 150
    Connection: keep-alive
    
    {"error":"javax.ws.rs.WebApplicationException","exception":"javax.ws.rs.WebApplicationException","timestamp":1499806383136,"duration":0,"errorCode":0} 
    

    此代码基于此python脚本: enter image description here

    1 回复  |  直到 7 年前
        1
  •  0
  •   user2464424    7 年前

    如果您只需要一个带有自定义头且没有正文的GET请求,那么您可以使用甚至不需要Curl的以下方法:

    $token = "SOMETHING"
    $kahootId = '0c17fb60-76c6-424c-9326-d1154cbc70d3';
    $url = 'https://create.kahoot.it/rest/kahoots/'.$kahootId;
    
    $options = array(
        'http' => array(
            'method'  => 'GET',
            'header'  => "Authorization: ".$token."\r\n"
        )
    );
    
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);