2012-05-06 1 views
0

Я пытаюсь преобразовать это:Как преобразовать команду curl с параметром вывода в httparty?

curl -k -v -X GET -H "Accept: application/pdf" https://username:[email protected]/v1/mailingBuilders/456/proofs/1 -o myProof 

для HTTParty. Вот мой код:

@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}" 

ответ возвращает

"Невозможно преобразовать урну: C2M: документ: ID: 361 из текста/равнину к применению/PDF"

Edit (2)

body.inspect с "текст/обычный" возвращает

#<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"

#<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

Edit 4

с debug_ouput опцией

с "приложения/PDF"

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 

с "текст/обычный"

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 

бревно из локонов команды

Edit (4)

Ну я нашел решение с Rest Client, и я внес свой скромный вклад в этот драгоценный камень.

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

Благодаря Каждое тело

+0

Кстати, вы включили свое имя пользователя/пароль в тело здесь (заголовок 'Authorization'). – Ashe

+0

@Len с RestClient. У меня нет этой проблемы. Спасибо за вашу помощь – Bolo

+0

молодец! Рад слышать, что ты работаешь. – Ashe

ответ

0

Попробуйте это:

body = Httparty.get("https://username:[email protected]/v1/mailingBuilders/456/proofs/1") 

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

api не разрешает запрос без имени файла. parsed_response возвращает это «Невозможно преобразовать urn: c2m: document: id: 361 from text/plain to application/pdf» – Bolo

+0

Я понятия не имею, о чем вы сейчас говорите. : | – Ashe

+0

Ваше решение не работает. p body.parsed_response возвращает мне это "" Невозможно преобразовать urn: c2m: document: id: 361 from text/plain to application/pdf " – Bolo

1

Вы можете также использовать Net :: HTTP (требуется 'сеть/HTTP') См this question для примера, как загружать большие файлы.

+0

не работает. Для запроса требуется имя файла. – Bolo

+0

Вам нужно будет объяснить, где вы видите эту ошибку, если мы хотим вам помочь. – Ashe

+0

здесь: p body.parsed_response – Bolo

0

Проблема с API-интерфейсом.

Это не имеет никакого отношения к тому, как вы вызываете API, чтобы получить доказательство или какую библиотеку ресурсов Rest API вы используете. Проблема заключается в том, что вы использовали для создания этой рассылки. В результате возникает проблема, которая приводит к появлению сообщения об ошибке «Невозможно преобразовать urn: c2m: document: id: 361 из текста/plain в application/pdf».

Пришлите письмо поддержки @ click2mail.com, что вы сделали для создания этого почтового буфера, чтобы мы могли его просмотреть и посмотреть, в чем проблема.

 Смежные вопросы

  • Нет связанных вопросов^_^