首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTP请求失败!HTTP/1.1 400错误请求

HTTP请求失败!HTTP/1.1 400错误请求
EN

Stack Overflow用户
提问于 2015-02-11 00:02:59
回答 2查看 17K关注 0票数 5

我正试图在Jira中制造一个问题。

我可以使用适当的响应发出GET请求,但是当我发出POST request.Here是代码时,问题就出现了。

代码语言:javascript
复制
<?php

$userName ='xxxxxxxxxxxxxxxx';
$password ='xxxxxxxxxxxx';

$data = ['fields' => ['projects'=>['key'=>'ABC'],'summary'=>'abc','description'=>'abc','issuetype'=>['name'=>'Task']]];

$data = http_build_query($data);
$context = 
     array("http"=>
        array(
            "method" => "POST",
                "header" => "Authorization: Basic " . base64_encode($userName.':'.$password) . "\r\n".
                'Accept: application/json'."\r\n".
                "Content-Length: ".strlen($data)."\r\n".
                    'Content-Type: application/json'."\r\n",
            'content' => $data,
            'verify_peer'=>false,
            'verify_peer_name'=>false,
            )
            );
$context = stream_context_create($context);
$result = file_get_contents("https://xxxxx.atlassian.net/rest/api/2/issue/", false, $context);
echo "The result is ", $result;

?>

我得到以下错误:

代码语言:javascript
复制
Warning:file_get_contents(https://xxxxx.atlassian.net/rest/api/2/issue/):
failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in
/var/www/html/test/new.php on line 27

有谁能帮我吗?谢谢

P.S

我不想使用curl作为http-stream的替代品,因为google应用程序引擎不支持curl。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-11 00:58:07

http_build_query()生成url编码的字符串。但是,API需要JSON。您应该改用json_encode()

更改:

代码语言:javascript
复制
$data = http_build_query($data);

至:

代码语言:javascript
复制
$data = json_encode($data);

虽然这可能不是你唯一的问题,但这肯定是导致400 Bad Request的一个问题。

票数 6
EN

Stack Overflow用户

发布于 2017-11-15 21:31:05

你的代码中会有打字错误吗?

代码语言:javascript
复制
$data=array('fields' => array ('project' => array ('key' => 'WOIS',),'summary' => 'ABC','description' => 'ABC','issuetype' => array ('name' => 'Task',),),); 

vs

代码语言:javascript
复制
$data = ['fields' => ['projects'=>['key'=>'WOIS'],'summary'=>'adfsdf','descriptio‌​n'=>'adfefsa','issue‌​type'=>['name'=>'Tas‌​k']]];

第一行显示project,第二行显示projects

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28436188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档