7
votes

400 mauvaise demande en rubis mais pas curl

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> xxx pré>

ceci me donne un # code> réponse. p>

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


0 commentaires

3 Réponses :


4
votes

Vous devez spécifier une URL complète:

req = Net::HTTP::Post.new("https://api.parse.com/1/push")


0 commentaires

0
votes
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.

0 commentaires

14
votes

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


0 commentaires