标签: form-data

如何使用JMeter将application/x-www-form-urlencoded params发送到RestServer?

我开发了一个休息服务器,我把它放在localhost中运行,我正在尝试使用JMeter执行测试,发送请求post和gets(取决于被调用的方法).

我已经发送到Rest服务器并在简单的帖子请求中得到JMeter的结果,获取请求,发送带有帖子的文件,并发送带有帖子的Json.

但我不知道如何将Form-UrlEncoded对象发送到服务器.我的Rest服务器消耗了application/x-www-form-urlencoded,我需要发送3个String参数.

有一些方法可以设置MimeType每个参数并执行测试吗?

我正在使用Jmeter 2.7

  • [更新]

我通过禁用选项解决了这个问题:

use multipart/form-data for post
Run Code Online (Sandbox Code Playgroud)

并启用:

redirect automatically
Run Code Online (Sandbox Code Playgroud)

代替:

follow redirect
Run Code Online (Sandbox Code Playgroud)

我通常在表"使用请求发送参数"中的参数与每个相应的名称.

rest form-data jmeter mime-types

8
推荐指数
3
解决办法
1万
查看次数

通过jQuery和FormData的Ajax POST请求 - $ _POST在PHP上为空

我希望使用jQuery和FormData通过ajax将图像上传到服务器.

我的jQuery代码如下

var formData = new FormData("form")[0];
  var fileName = $("#InputLogo")[0].files[0].name;

  $.ajax ( {
      url : 'upload.php',
      type : 'POST',
      data : { "data" : formData, "fileName" : fileName },
      processData : false,
      success : function(data) {
          console.log(data);
          alert(data);
      }
  });
Run Code Online (Sandbox Code Playgroud)

当用户选择要上载的新文件时,将调用此代码.

我的服务器后端是PHP,它按如下方式处理请求

$data = $_POST['data'];
$fileName = $_POST['fileName'];
$fp = fopen('/img/'.$fileName, 'w');
fwrite($fp, $data);
fclose($fp);
$returnData = array("data" => $data);
print_r($_POST);
Run Code Online (Sandbox Code Playgroud)

POST请求确实发生,但$ _POST仍为空.

我试着寻找解决方案,但找不到一个确切的解决方案.

任何建议,将不胜感激.

编辑: 这是HTML中的表单

<form id=card-form" method="post" action="" >
      <div class="form-group">
    <label for="InputName">Name of …
Run Code Online (Sandbox Code Playgroud)

javascript php ajax jquery form-data

8
推荐指数
4
解决办法
3万
查看次数

是否可以为新的FormData(XHR2)对象或变通方法设置accept-charset

这是示例代码(http://jsfiddle.net/epsSZ/1/):

HTML:

<form enctype="multipart/form-data" action="/echo/html" method="post" name="fileinfo" accept-charset="windows-1251">
  <label>Label:</label>
  <input type="text" name="label" size="12" maxlength="32" value="får løbende" /><br />
  <input type="submit" value="Send standart">
</form>
<button onclick="sendForm()">Send ajax!</button>
Run Code Online (Sandbox Code Playgroud)

JS:

window.sendForm = function() {
  var oOutput = document.getElementById("output"),
     oData = new FormData(document.forms.namedItem("fileinfo"));
  var oReq = new XMLHttpRequest();
  oReq.open("POST", "/echo/html", true);
  oReq.send(oData);
}
Run Code Online (Sandbox Code Playgroud)

当我通过标准格式提交提交这种旧方式时,请求有效负载如下所示:

------WebKitFormBoundary2890GbzEKCmB08rz
Content-Disposition: form-data; name="label"

f&#229;r l&#248;bende
Run Code Online (Sandbox Code Playgroud)

但是当我提交这种AJAX方式时,它看起来有点不同:

------WebKitFormBoundaryPO2mPRFKj3zsKVM5
Content-Disposition: form-data; name="label"

får løbende
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,在前一种情况下有一些字符被字符实体替换,但是在使用的情况下FormData有普通的字符串,这当然很好,因为它是utf-8,但是有没有可能使它表现得像标准表格提交?

javascript ajax form-data character-encoding xmlhttprequest-level2

8
推荐指数
1
解决办法
8558
查看次数

在Java中将POJO转换为表单数据

我有一个形式的POJO:

@Data
public class BaseRequest {
    private String type;
    private Map<String, Object> details;
    private Map<String, Object> signature;
}
Run Code Online (Sandbox Code Playgroud)

我正在运行一个仅接受内容类型的服务:“ application / x-www-form-urlencoded”。

我已经用Java编写了一个客户端,该客户端使用Spring的RestTemplate进行调用。

public String getInvoice(BaseRequest req, String url) {
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

    HttpEntity<BaseRequest> httpEntity = new HttpEntity<BaseRequest>(req, headers);
    String response = this.restTemplate.postForObject(url, httpEntity, String.class);
    return response;
}
Run Code Online (Sandbox Code Playgroud)

但是,它将引发错误:

org.springframework.web.client.RestClientException: Could not write request: no suitable HttpMessageConverter found for request type [com.x.y.z.BaseRequest] and content type [application/x-www-form-urlencoded]
Run Code Online (Sandbox Code Playgroud)

如果我将内容类型设置为JSON,它将起作用:

headers.setContentType(MediaType.APPLICATION_JSON);
Run Code Online (Sandbox Code Playgroud)

我知道它适用于JSON,因为我已经用JacksonHTTPMessageConverter配置了RestTemplate Bean。因此,我可以轻松地将POJO转换为application / json。但是,我不知道如何使用application / x-www-form-urlencoded做到这一点。

我已经搜索了一段时间,发现的唯一解决方案是编写自己的转换器,将BaseRequest类转换为Spring的MultiValueMap,然后Spring的FormHttpMessageConverter将自动处理它。但我想避免这样做。还有其他解决方法吗?

任何线索将不胜感激。谢谢!

编辑:我的问题不同于 …

java spring form-data pojo resttemplate

8
推荐指数
1
解决办法
1364
查看次数

HTML5 FormData在Java Servlet request.getParameter()中返回null

我的观点是HTML 5.我正在使用FormData对Servlet进行AJAX 2 POST.在servlet内部我正在尝试读取请求参数.我看不到任何参数.但是,Google Chrome开发者控制台会显示请求的有效负载.如何在Servlet代码中获得相同的内容?任何帮助将不胜感激.这是代码.

JS代码

var xhr = new XMLHttpRequest();
var formData = new FormData();
formData.append('firstName', 'ABC');
formData.append('lastName', 'XYZ');

xhr.open("POST", targetLocation, true);
xhr.send(formData);
Run Code Online (Sandbox Code Playgroud)

Servlet代码(两个参数都返回null)

out.println("Hello! "+ request.getParameter("firstName")+ " "+ request.getParameter("lastName")+ ", thanks for sending your feedback." );
Run Code Online (Sandbox Code Playgroud)

谷歌Chrome控制台

Content-Disposition: form-data; name="firstName"
XYZ
Content-Disposition: form-data; name="lastName"
ABC
Run Code Online (Sandbox Code Playgroud)

ajax html5 servlets xmlhttprequest form-data

7
推荐指数
1
解决办法
1万
查看次数

[object FormData]中的警报特定元素(用于测试)

我正在尝试查看内部包含的内容[object FormData],特别是在名称应该包含的特定元素内Name.我想提醒它,检查内容是否正确,但这样做会返回undefined:

    alert(fd['Name']);
Run Code Online (Sandbox Code Playgroud)

我很确定我正在正确加载表单数据,所以我想知道问题是我是否以错误的方式访问数据...

PS警报仅fd返回[object FormData]

javascript ajax form-data

7
推荐指数
1
解决办法
1万
查看次数

使用JQuery使用预先签名的URL将文件上载到S3时出错

我们正在尝试使用jQuery ajax和预先签名的URL将文件上传到S3.我们在服务器上生成预先指定的URL.目前我们正在尝试使用FormData上传文件.

          var uploadData = new FormData(),
            files = $(this.input).prop('files'),
            file = files[0];

          uploadData.append('file', file);

          $.ajax({
            url: '{presigned url string}',
            type: 'PUT',
            data: uploadData,
            cache: false,
            processData: false,
            contentType: false,
            success: function(response) {
              console.log('S3 upload success!');
            },
            error: function(response) {
              console.log('Error with S3 upload: ' + response.statusText);
            }
          });
Run Code Online (Sandbox Code Playgroud)

这将从AWS返回SignatureDoesNotMatch错误:

<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we 
calculated does not match the signature you provided. Check your key and 
signing method.</Message><StringToSignBytes>50 55 54 0a 0a 6d 75 6c 74 69 70 …
Run Code Online (Sandbox Code Playgroud)

javascript jquery file-upload form-data amazon-s3

7
推荐指数
1
解决办法
2235
查看次数

在 FormData 中发送整数

当我向后端发送一个整数时,我将它作为字符串接收,我不知道为什么?

var formdata = new FormData();

for (var i = 0; i < scope.user.values.length; i++) {
    formdata.append('values[]', scope.user.values[i]);
}
Run Code Online (Sandbox Code Playgroud)

我以字符串形式接收值,而它们应该是整数

javascript jquery form-data angularjs

7
推荐指数
1
解决办法
1万
查看次数

angular获取图像数据并再次将其附加到FormData

在角度5我通过我的服务从mongodb获取hotelgallery的图像.所以基本上我得到的数据是这样的

{
  fieldname: "hotelgallery", 
  originalname: "e.jpg", 
  encoding: "7bit", 
  mimetype: "image/jpeg", 
  destination: "./public/",
  encoding : "7bit",
  filename : "1521139307413.jpg"
  mimetype : "image/jpeg"
  path : "public/1521139307413.jpg"
  size : 66474
}
{
  fieldname: "hotelgallery", 
  originalname: "e.jpg", 
  encoding: "7bit", 
  mimetype: "image/jpeg", 
  destination: "./public/",
  encoding : "7bit",
  filename : "1521139307413.jpg"
  mimetype : "image/jpeg"
  path : "public/1521139307413.jpg"
  size : 66474
}
{
  fieldname: "hotelgallery", 
  originalname: "j.jpg", 
  encoding: "7bit", 
  mimetype: "image/jpeg", 
  destination: "./public/",
  encoding : "7bit",
  filename : "1526753678390.jpg"
  mimetype : "image/jpeg"
  path : "public/1526753678390.jpg"
  size : …
Run Code Online (Sandbox Code Playgroud)

javascript form-data angular

7
推荐指数
1
解决办法
1800
查看次数

如何使用 axios 补丁请求发送 FormData?

我想部分更新一组数据和一个图像文件。我的图像已更新,但其他数据未更新。这是我的代码示例:

    updateUsersData() {
    const { gender, phone, address, cityId, image, signature } = this.state;
    const fd = new FormData();
    fd.append('image', image, image.name);
    fd.append('gender', gender);
    fd.append('phone', phone);
    fd.append('address', address);
    fd.append('cityId', cityId);
    fd.append('signature', signature);
    fd.append('_method', 'PATCH');
    API.patch(`users/${this.props.id}`, 
        fd
        )
        .then(res => {

        })
        .catch(err => console.log(err))
}
Run Code Online (Sandbox Code Playgroud)

multipartform-data form-data reactjs axios

7
推荐指数
1
解决办法
6539
查看次数