我以编程方式设置FormData,如下所示:
public List<Map<String,Object>> GetUserData(Register r) {
String sql="select *from user where username='"+r.getUsername()+"' and '"+r.getPassword()+"'";
System.out.println("UN:"+r.getUsername());
return template.queryForList(sql); }
之后,我将与此对象发送POST请求。 (使用有角度的HttpClient)。
我正在使用Postman调试请求,并通过将请求导入为cURL来查看发送了哪些值,并且看到formData值的显示方式有所不同。
const formData = new FormData();
formData.append('id', '12345678');
我在做什么错了?
我想发送数据,以便服务器将接收带有以下对象的x格式的编码请求:
key:------WebKitFormBoundaryI1mdsdmKkradYVMS\r\nContent-Disposition: form-data; name
value: "id"\r\n\r\n12345678\r\n------WebKitFormBoundaryI1mdsdmKkradYVMS--\r\n
编辑:解决方案是这样的:
key: id
value: 12345678
谢谢, 雅伦
答案 0 :(得分:2)
FormData对象默认生成multipart/form-data
,而不生成application/x-www-form-urlencoded
。
它们专门用于处理application/x-www-form-urlencoded
中没有标准编码方法的文件上传。
如果要生成application/x-www-form-urlencoded
数据,请使用URLSearchParams object。
const formData = new FormData();
formData.append('id', '12345678');
const query = new URLSearchParams(formData);
console.log(query.toString());
答案 1 :(得分:0)
@Quentin的回答很好,但不适合Angular。
只需将第二个参数传递给您的GET调用:
return this.http.get<any>('url', { params: { id: '123456789' }});
您不需要发出请求来添加url参数,并且如果您不提供正文,也不需要发布请求。