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

Jmeter不会在POST中发送JSON数据

秦琦
2023-03-14

我试图用json作为主体数据在jmeter中发布帖子,但我只得到了400。我发送到的URL只接受json。我在《邮差》中也用过同样的卷发,效果很好。我曾尝试将json作为一个没有名称的值放入参数中,但没有成功。

我只是想发送{“uid”:“jmtest”,“name”:“newdevice”}。

对不起,我不能发布更多的链接。

采样结果为

Thread Name: QA test 1-1
Sample Start: 2016-05-11 11:50:19 MDT
Load time: 86
Connect Time: 51
Latency: 86
Size in bytes: 282
Headers size in bytes: 244
Body size in bytes: 38
Sample Count: 1
Error Count: 1
Data type ("text"|"bin"|""): text
Response code: 400
Response message: Bad Request
Response headers:
HTTP/1.1 400 Bad Request
Server: nginx
Date: Wed, 11 May 2016 17:50:19 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 38
Connection: keep-alive
X-Request-Id: 88339ee9-b74f-4e22-b581-e3124949d067
X-Runtime: 0.030877
HTTPSampleResult fields:
ContentType: application/json; charset=utf-8
DataEncoding: utf-8

请求看起来像

/url redacted
POST data:
{"devices":{"uid":"jmtest","name":"newdevice"}
[no cookies]
Request Headers:
Connection: keep-alive
Accept: application/vnd.moneydesktop.v2+json
Content_Type: application/json
MD-SESSION-TOKEN: redacted
Content-Type: application/x-www-form-urlencoded
Content-Length: 46
Host: redacted
User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_72)

响应数据为

{
:   "status":"400",
:   "error":"Bad Request"
}

共有3个答案

姚臻
2023-03-14

德米特里·T的这个解决方案对我真的很有效。

确保您的HTTP头管理器配置为发送值为“application/json”的“Content-Type”头。

陶唯
2023-03-14
  1. 确保您的HTTP头管理器配置为发送内容类型头,其值为应用程序/json
  2. 如果您有“主页”和“登录”之类的采样器,则可能缺少HTTP Cookie Manager
  3. 查看错误的最直接的方法是使用诸如Wireshark之类的嗅探工具捕获邮递员(不管是什么)和JMeter发送的请求,识别差异并相应地配置JMeter
  4. 最后,看起来您正在使用某个开发人员快照,所以将JSON有效负载作为第一个参数传递(没有名称)的方法可能不起作用。尝试切换到“身体数据”
  5. 如果上述步骤无法帮助您更新问题,请使用查看结果树侦听器(全部3个选项卡)和邮递员的屏幕截图

查看使用JMeter测试SOAP/REST Web服务,了解更多提示。

翟鹏
2023-03-14

要发送带有主体内JSON数据的POST HTTP请求,需要添加,

  • HTTP头管理器插入到您的请求中,并将名称设置为“content type”,值设置为“application/json”,这将附加到HTTP请求头中,并且请求体内的数据将以json格式发送
 类似资料:
  • 我得到以下错误 响应数据为空。我做错了什么,或者我在代码中遗漏了什么?

  • 问题内容: 我对PHP,JavaScript和许多其他脚本语言有丰富的经验,但是对Java或Android却没有太多的经验。 我正在寻找一种将 POST 数据发送到PHP脚本并显示结果的方法。 问题答案: ***更新了适用于Android 6.0+的答案。 较旧的答案 注意:此解决方案已过时。 它仅适用于最高5.1的Android设备。Android 6.0及更高版本不包含此答案中使用的Apach

  • 问题内容: 尝试发送json。这是我的功能: 但是,每当我检查Chrome时,它总是将其作为查询参数发送: 如何获取以JSON格式发送的信息? 问题答案: 用 样品: 注意并非所有浏览器(http://caniuse.com/#feat=json)都支持JSON.stringify ,特别是IE7及更低版本的浏览器。 如果您也需要支持此浏览器,则可以使用以下Javascript库:https :

  • 想送Json这是我的功能: 但每当我检查Chrome时,它总是将其作为查询参数发送: 我如何让它作为JSON发送?

  • 问题内容: 我对PHP,JavaScript和许多其他脚本语言有丰富的经验,但是对Java或Android却没有太多的经验。 我正在寻找一种将POST数据发送到PHP脚本并显示结果的方法。 问题答案:

  • 问题内容: 我已经开发了一个Java代码,该代码使用URL和HttpUrlConnection将以下cURL转换为Java代码。卷曲是: 我已经编写了此代码,但是它始终会给HTTP代码400错误的请求。我找不到丢失的内容。 问题答案: 你的JSON不正确。代替 写 因此,JSONObject.toString()应该只为外部对象调用一次。 另一件事(可能不是你的问题,但我想提一下): 为确保不会遇