正在做一个项目,对方的 API 使用 Java maven restful service 写的。 对方要求发送 form-data 类型数据。 尝试多次后,每次都返回
415 Unsupported Media Type
这个错误,虽然知道什么错误,但是,不知道该怎么发送数据了。 对方使用 Java 测试,我看对方测试的源代码,使用的是
MultipartEntityBuilder
去填写数据发送的。 我的做法是
_url = "http://localhost:8080/hiwitservice/bio/test"
uri = URI.parse("http://localhost:8080")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new("/hiwitservice/bio/test")
request.add_field('Content-Type', 'application/json')
request.add_field('enctype', 'multipart/form-data')
request.body = {'apiId' => 'username', 'apiKey' => 'key'}.to_json
http.set_debug_output($stdout)
response = http.request(request)
但是,还是一样的错误。
输出结果
#<IO:0x007ff9998c6550>
opening connection to localhost:8080...
opened
<- "POST /hiwitservice/bio/test HTTP/1.1\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nUser-Agent:
Ruby\r\nEnctype: multipart/form-data\r\nConnection: close\r\nHost: localhost:8080\r\nContent-Length: 35\r\nContent-Type: applicat
ion/x-www-form-urlencoded\r\n\r\n"
<- "{\"apiId\":\"username\",\"apiKey\":\"key\"}"
-> "HTTP/1.1 415 Unsupported Media Type\r\n"
-> "Server: Apache-Coyote/1.1\r\n"
-> "Date: Thu, 04 Jun 2015 20:11:38 GMT\r\n"
-> "Content-Length: 0\r\n"
-> "Connection: close\r\n"
-> "\r\n"
reading 0 bytes...
-> ""
read 0 bytes
Conn close
有人有类似的经验吗?求指教。。。。无头头绪了。
补充,之后再次尝试,直接写 HTML 页面表单。
<form action="http://www.test.com/v1/demo/test" method="post" enctype="multipart/form-data">
<input type="text" value="123" name="appId"/>
<input type="text" value="456" name="appKey" />
<input type="submit" value="提交" />
</form>
这个样子是在页面正确显示了 call ok 的字样。
再求指点。。。