J'essaie de faire une demande postale HTTPS à Ruby et que cela fonctionne en boucle, mais je reçois une 400 mauvaise demande de Ruby et j'ai du mal à comprendre pourquoi.
Heres le code Rubis: p> ceci me donne un mais les travaux équivalents de curl Tout simplement bien: P> # curl -X POST \
-H "X-Parse-Application-Id: abc123" \
-H "X-Parse-REST-API-Key: abc123" \
-H "Content-Type: application/json" \
-d '{
"channels": [
"notifications"
],
"data": {
"alert": "sup?"
}
}' \
https://api.parse.com/1/push
3 Réponses :
Vous devez spécifier une URL complète:
req = Net::HTTP::Post.new("https://api.parse.com/1/push")
def get_job(job_name)
puts "Posting job #{job_name} to get test update order service"
get_job_xml ="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ns=\"http://os.uk/Test/GetUpdateOrders/1.0\">
<soapenv:Header/>
<soapenv:Body>
<ns:GetTestUpdateOrdersReq>
<ContractGroup>abc</ContractGroup>
<ProductID>myproduct</ProductID>
<Reference>#{job_name}</Reference>
</ns:GetTestUpdateOrdersReq>
</soapenv:Body>
</soapenv:Envelope>"
@http = Net::HTTP.new(@server, @port)
request = Net::HTTP::Post.new(('/XISOAPAdapter/MessageServlet?senderParty=&senderService=faceNamespace=http://myco.uk/Test/GetUpdateOrders/1.0'), initheader = {'Content-Type' => 'text/xml'})
request.basic_auth(@username, @password)
request.content_type='text/xml'
request.body = get_job_xml
response = @http.request(request)
end
I have defined my method like this and its working.
Pour moi, le problème ne faisait pas la demande sur SSL. Une fois que j'ai défini la ligne suivante, tout a fonctionné:
http.use_ssl = true