首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将具有输出选项的curl命令转换为httparty?

如何将具有输出选项的curl命令转换为httparty?
EN

Stack Overflow用户
提问于 2012-05-06 10:06:42
回答 3查看 1.7K关注 0票数 0

我正试图改变这一点:

代码语言:javascript
复制
curl -k -v -X GET -H "Accept: application/pdf" https://username:password@rest.click2mail.com/v1/mailingBuilders/456/proofs/1 -o myProof

为了httparty。这是我的密码:

代码语言:javascript
复制
@auth = {:username => 'test', :password => 'test'}
options = {:headers => {'Accept' => 'application/pdf'}, :basic_auth => @auth }
body = HTTMultiParty.get("https://stage.rest.click2mail.com/v1/mailingBuilders/54544/proofs/1", options)

File.open("myProof", "w") do |file|
  file.write body
end

p "Reponse #{body.parsed_response}"

响应返回

无法将urn:c2m:document:id:361从text/平原转换为application/pdf

编辑(2)

带有“文本/纯文本”的body.inspect返回

代码语言:javascript
复制
#<HTTParty::Response:0x8 @parsed_response=nil, @response=#<Net::HTTPNotAcceptable 406 Not Acceptable readbody=true>, @headers={\"date\"=>[\"Sun, 06 May 2012 11:22:12 GMT\"], \"server\"=>[\"Jetty(6.1.x)\"], \"content-length\"=>[\"0\"], \"connection\"=>[\"close\"], \"content-type\"=>[\"text/plain; charset=UTF-8\"]}>

连同“申请/pdf”

代码语言:javascript
复制
#<HTTParty::Response:0x7fce08a92260 @parsed_response=\"Cannot convert urn:c2m:document:id:361 from text/plain to application/pdf\", @response=#<Net::HTTPBadRequest 400 Bad Request readbody=true>, @headers={\"date\"=>[\"Sun, 06 May 2012 11:24:09 GMT\"], \"server\"=>[\"Jetty(6.1.x)\"], \"content-type\"=>[\"application/pdf\"], \"connection\"=>[\"close\"], \"transfer-encoding\"=>[\"chunked\"]}>

编辑3

Api :步骤8

https://developers.click2mail.com/rest-api#send-a-test-mailing

编辑4

使用debug_ouput选项

连同“申请/pdf”

代码语言:javascript
复制
opening connection to stage.rest.click2mail.com...
opened
<- "GET /v1/mailingBuilders/54544/proofs/1 HTTP/1.1\r\nAccept: application/pdf\r\nAuthorization: Basic Ym9sb2RldjptVW43Mjk0eQ==\r\nConnection: close\r\nHost: stage.rest.click2mail.com\r\n\r\n"
-> "HTTP/1.1 400 Bad Request\r\n"
-> "Date: Sun, 06 May 2012 14:05:30 GMT\r\n"
-> "Server: Jetty(6.1.x)\r\n"
-> "Content-Type: application/pdf\r\n"
-> "Connection: close\r\n"
-> "Transfer-Encoding: chunked\r\n"
-> "\r\n"
-> "49\r\n"
reading 73 bytes...
-> ""
-> "Cannot convert urn:c2m:document:id:361 from text/plain to application/pdf"
read 73 bytes
reading 2 bytes...
-> ""
-> "\r\n"
read 2 bytes
-> "0\r\n"
-> "\r\n"
Conn close

加上“文本/纯文本”

代码语言:javascript
复制
opening connection to stage.rest.click2mail.com...
opened
<- "GET /v1/mailingBuilders/54544/proofs/1 HTTP/1.1\r\nAccept: text/plain\r\nAuthorization: Basic Ym9sb2RldjptVW43Mjk0eQ==\r\nConnection: close\r\nHost: stage.rest.click2mail.com\r\n\r\n"
-> "HTTP/1.1 406 Not Acceptable\r\n"
-> "Date: Sun, 06 May 2012 14:14:19 GMT\r\n"
-> "Server: Jetty(6.1.x)\r\n"
-> "Content-Length: 0\r\n"
-> "Connection: close\r\n"
-> "Content-Type: text/plain; charset=UTF-8\r\n"
-> "\r\n"
reading 0 bytes...
-> ""
read 0 bytes
Conn close

从curl命令登录

编辑(4)

我在Rest客户端找到了一个解决方案,我用这个宝石做了我的微薄贡献。

https://github.com/bolom/click2mail-ruby-gem

谢谢每一个人

EN

回答 3

Stack Overflow用户

发布于 2012-05-06 10:31:13

还可以使用net::http (要求'net/http')参见this question中如何下载大型文件的示例。

票数 1
EN

Stack Overflow用户

发布于 2012-05-06 10:20:22

试试这个:

代码语言:javascript
复制
body = Httparty.get("https://username:password@rest.click2mail.com/v1/mailingBuilders/456/proofs/1")

File.open("myProof", "w") do |file|
    file.write body
end
票数 0
EN

Stack Overflow用户

发布于 2012-05-07 14:51:31

问题在于它本身的API。

这与您如何调用API以获得验证无关,也与您正在使用的Rest库无关。问题在于,无论您使用什么方法创建这个mailingBuilders,都会导致错误消息“无法将urn:c2m:document:id:361从text/平原转换为application/pdf”。

请向support@click2mail.com发送您为创建此mailingBuilder所做的准确操作,以便我们可以查看它并查看问题所在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10469691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档