Ich habe einen einfachen Knoten js Server/App, die Dateien empfangen. Ich habe versucht, JPEG-Dateien mit CURL Upload und funktioniert perfekt.Ich habe versucht mit postman funktioniert auch gut.Aber wenn ich versuche, JPEG mit einfachen Ruby-Skript über Tcp-Socket hochladen es funktioniert nicht.Die Anfrage wird vom Server aber mit erhalten Kein Dateiobjekt. In Node js Server route debugge ich die Anfrage wie so console.log(request.body);
und dies gibt undefined
zurück. Mit Curl und Postman erhalte ich ein richtiges Anfrageobjekt (Datei) .Dies scheint, als ob meine http-Anfrage im Ruby-Skript nicht richtig formatiert ist, Kann jemand darauf hinweisen, was mache ich hier falsch? Vielen Dank im Voraus.Hier ist mein Ruby-Skript .Wie formatiert man Http multipart/form-data-Anfrage zum Hochladen von Datei auf den Server
require 'socket'
host = "127.0.0.1"
port = 8080
client = TCPSocket.open(host, port)
client.write("POST /api/binary HTTP/1.1\r\n")
client.write("Host: 127.0.0.1\r\n")
client.write ("Accept: */* \r\n")
client.write ("Content-Type: multipart/form-data; boundary=AaB03x\r\n")
client.write ("\r\n")
client.write("AaB03x"+ "\n" + "Content-Disposition: form-data; name='datafile'; filename='cam.jpg' \n Content-Type: image/jpeg \r\n")
data = File.open("./dom.jpg", "rb") {|io| io.read}
client.write (data)
client.write("boundary=AaB03x\r\n")
client.write ("\r\n")
client.close
generiert Codestück von Postbote
POST /api/binary HTTP/1.1
Host: myapp.herokuapp.com
Cache-Control: no-cache
Postman-Token: c15a79a2-3a4b-0555-a876-9032afeab5de
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name=""; filename=""
Content-Type:
----WebKitFormBoundary7MA4YWxkTrZu0gW
Ihr Ruby-Code stellt eine Verbindung zu localhost her, aber die generierte HTTP-Anfrage scheint nicht zu stimmen. – Uzbekjon
Der Postbote ist eine Verbindung zu meiner deployed App (remote server) .Ich habe eine Datei mit CURL an meinen localhost gesendet und es funktioniert einwandfrei. Das einzige Problem ist, wenn ich das Skript verwende, das ich erstellt habe, ob ich an localhost oder Remote-Server sende, bekomme ich 'undefined' Anfrageobjekt. – sparks