使用 tsung POST 请求发送 json

Posted

技术标签:

【中文标题】使用 tsung POST 请求发送 json【英文标题】:Sending json with tsung POST request 【发布时间】:2014-06-25 20:09:15 【问题描述】:

我正在尝试使用 Tsung 创建一个 POST 请求

<request> 
  <http url="api.whatever.com" method="POST" version="1.1" contents=""></http>
</request>

如何在 content 属性中发送 JSON 文档?

contents='"name": "alex"' 

当然是无效的……

有没有办法通过我的 POST 请求发送 JSON?

【问题讨论】:

【参考方案1】:

我可以通过替换 " &amp;quot; 并添加内容类型标头 application/json 来做到这一点

所以我的例子会变成:

content_type='application/json' contents='&quot;name&quot;: &quot;alex&quot;

【讨论】:

【参考方案2】:

绝对最简单的方法(从 Tsung 1.3 开始)是make use of the contents_from_file attribute.,这样可以避免使用大量转义数据污染您的代码,并使您能够获取任何原始数据并将其转储到您选择的文件中

<http url="mypage" 
      method="POST" 
      content_type='application/json'
      contents_from_file="/tmp/myfile.json" 
/>

【讨论】:

【参考方案3】:

发送json的时候,我一般会在不运行tsung的情况下,在Wireshark捕获几个成功的请求。

然后我找到其中一个数据包的 IP 地址,选择“分析”菜单并选择“跟踪 TCP 流”。

这让我可以看到实际发送的数据。

数据可能如下所示:

data.text=U.S.+intelligence+agents+have+been+hacking+computer+networks%0A++++++++++++++++++++++++around+the+world+for+years%2C+apparently+targeting+fat+data%0A++++++++++++++++++++++++pipes+that+push+immense+amounts+of+data+around+the+Internet%2C%0A++++++++++++++++++++++++NSA+leaker+Edward+Snowden+t&amp;amp;type=text&amp;amp;data.sender-id=8a5b1c2f-0589-464c-82c4-b8f4e280511a'

然后我修改tsung xml看起来像:

content_type='application/x-www-form-urlencoded' contents=''

并将数据粘贴到内容中。

您也可以尝试使用 " 转义引号,但我从来没有运气。

【讨论】:

以上是关于使用 tsung POST 请求发送 json的主要内容,如果未能解决你的问题,请参考以下文章

使用 Volley 发送带有 JSON 数据的 POST 请求

如何使用 C# 在 POST 请求中发送 json 请求正文数据

GWT:如何使用 JSON 发送 POST 跨域请求

无法使用 POST 请求发送 JSON

使用 HttpClient 向本地 json 文件发送 POST 请求

使用 POST 请求 iOS Swift 3 发送嵌套 JSON