curl post 图像到 sinatra api 失败
curl post image to sinatra api fail
我知道这是一个在 Whosebug 上提出和回答的问题,但我尝试了很多都没有帮助,不知道如何调试它。
我的命令:
curl -i -X POST -H “Content-Type: multipart/form-data” -F "file=/Users/william/Desktop/test.png" http://localhost:3000/api/v1/books
终端输出:
curl: (6) Could not resolve host: multipart
HTTP/1.1 500 Internal Server Error
Content-Type: text/html
Content-Length: 170873
Server: WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
Date: Thu, 14 Jan 2016 11:19:40 GMT
Connection: Keep-Alive
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="robots" content="NONE,NOARCHIVE" />
<title>NameError at /api/v1/books</title>
<style type="text/css">
html * { padding:0; margin:0; }
body * { padding:10px 20px; }
body * * { padding:0; }
不确定如何解决这个问题?我用浏览器测试效果很好:
<form action='/api/v1/books' enctype="multipart/form-data" method='POST'>
<input name="file" type="file" />
<input type="submit" value="Upload" />
</form>
有什么帮助吗?谢谢!
EDIT 在路径前添加@
使上传图片成功,但仍然出现输出错误。
这是一行:<title>NameError at /api/v1/books</title>
应该是什么可能的错误?
"curl: (6) Could not resolve host: multipart" 表示 curl 将 "multipart" 视为 URL。我怀疑它这样做是因为您没有在该命令行中使用 "real" 双引号(ascii 代码 34),而是使用一些特殊的 unicode 引号。
file= 之前的双引号看起来不一样 - 而且是正确的。
(正如@mhawke 提到的那样,设置 Content-Type 完全没有必要,因为 curl 在使用 -F 时默认情况下已经这样做了)
我知道这是一个在 Whosebug 上提出和回答的问题,但我尝试了很多都没有帮助,不知道如何调试它。
我的命令:
curl -i -X POST -H “Content-Type: multipart/form-data” -F "file=/Users/william/Desktop/test.png" http://localhost:3000/api/v1/books
终端输出:
curl: (6) Could not resolve host: multipart
HTTP/1.1 500 Internal Server Error
Content-Type: text/html
Content-Length: 170873
Server: WEBrick/1.3.1 (Ruby/2.1.5/2014-11-13)
Date: Thu, 14 Jan 2016 11:19:40 GMT
Connection: Keep-Alive
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="robots" content="NONE,NOARCHIVE" />
<title>NameError at /api/v1/books</title>
<style type="text/css">
html * { padding:0; margin:0; }
body * { padding:10px 20px; }
body * * { padding:0; }
不确定如何解决这个问题?我用浏览器测试效果很好:
<form action='/api/v1/books' enctype="multipart/form-data" method='POST'>
<input name="file" type="file" />
<input type="submit" value="Upload" />
</form>
有什么帮助吗?谢谢!
EDIT 在路径前添加@
使上传图片成功,但仍然出现输出错误。
这是一行:<title>NameError at /api/v1/books</title>
应该是什么可能的错误?
"curl: (6) Could not resolve host: multipart" 表示 curl 将 "multipart" 视为 URL。我怀疑它这样做是因为您没有在该命令行中使用 "real" 双引号(ascii 代码 34),而是使用一些特殊的 unicode 引号。
file= 之前的双引号看起来不一样 - 而且是正确的。
(正如@mhawke 提到的那样,设置 Content-Type 完全没有必要,因为 curl 在使用 -F 时默认情况下已经这样做了)