当前位置: 首页 > 知识库问答 >
问题:

狼吞虎咽400个糟糕的请求

陆啸
2023-03-14

当我执行POST请求时,会出现以下错误:

require 'vendor/autoload.php';
use GuzzleHttp\Client;
use GuzzleHttp\Exception\ClientException;

$client = new Client(["base_uri"=>"http://api.hitbox.tv/"]);
$data = ["login"=>"myId","pass"=>"mypassword","rememberme"=>"",];
try{
$response = $client->request("POST","auth/login",["form-params"=>$data,"content-type"=>"application/x-www-form-urlencoded"]);   
}
catch(ClientException $e){

  echo  $e->getMessage();

}
catch(InvalidArgumentException $e){

    echo $e->getMessage();

}
var_dump(json_decode($response,true));

我用Javascript XMLHttpRequest尝试了相同的api来发布相同的数据集,并获得了成功的结果。

var xmlhttp;


var data = '{"login":"myId","pass":"myPassword","rememberme":""}';

if(window.XMLHttpRequest){
    xmlhttp = new XMLHttpRequest();      
}
else{              
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){

if(xmlhttp.readyState==4 && xmlhttp.status == 200){
    return xmlhttp.responseText;
}

xmlhttp.open('POST','https://api.hitbox.tv/auth/login',false);

xmlhttp.send(data);

共有1个答案

干弘深
2023-03-14

您正在发送两个不同的请求。使用JavaScript,在请求正文中以JSON的形式发送数据。然而,对于Guzzle,您使用的是不同格式的form-params。

要解决这个问题,只需将form-params键替换为JSON并删除“content-type”=>“application/x-www-form-urlencoded”

 类似资料:
  • 我试图提交一个带有JSON内容的帖子。我总是收到这样的信息:

  • 我有困难纠正我的语法,我将感谢任何帮助;我试图设置包含基URL和一些必要的头信息(包括自定义安全令牌)的客户端 下一步是向webservice发布: 如果我将URL更改为string,我会得到: 可捕获的致命错误:传递给guzzleHTTP\client::__construct()的参数1必须是array类型,给定字符串,在第79行的C:\xampp\htdocs\ssquerytool\upd

  • 当我尝试用Jenkins构建一个maven工件时,build输出如下: 我已经在1.0版上成功地构建了一堆。我正在使用CentOS和Nexus3操作系统。

  • 我一直在玩CompletableFuture,发现了一件奇怪的事情。 如果在我的thenAccept调用中,断言失败,则不会传播异常。当时我尝试了更丑陋的东西: 不会发生任何事情,不会传播任何异常。我尝试使用诸如handle等方法以及与CompletableFutures中异常相关的其他方法,但失败了-没有一个方法像预期的那样传播异常。 当我调试CompletableFuture时,它会捕获如下异

  • 我正在测试简单拓扑以检查Kafka喷口的性能。它包含kafka spout和Bolt来确认每个元组。Bolt执行方法: 拓扑结构如下所示: 其他拓扑设置: 我在10分钟内得到了1.5kk元组。螺栓的性能约为0,5。所以我的逻辑很简单:如果我双倍喷注和螺栓并行提示-我将得到双倍的性能。下一个测试是1个工人2个Kafka喷口,2个简单的夹子螺栓和Topology.Acker.Executors=2。以

  • 在我第一次使用JavaFX时,场景被错误地显示,我没有找到原因。例如,在E(fx)clipse页面的第一个基本教程中提出了以下代码: 它应该显示文本“Hello FX”,但显示以下内容: 我的Java版本是适用于Windows 64(Win 7)的8u65。