Gerade sammle ich meine ersten Erfahrungen mit Python und hänge schon an einem Problem. Ich will eine Datei an einen Dienst senden. Der soll die Datei nehmen und mir den Inhalt in einer Response-Datei senden. Wenn ich den PostAufruf ohne Datei sende kommt ein Fehlertext in der Datei.
Soweit funktioniert der Testdienst (positiv und negativ-Test) über Konsole mit einem curl-Aufruf:
Code: Alles auswählen
curl -X POST -d @test.xml http://192.168.56.101/requestTest -o test2.txt
Code: Alles auswählen
import requests
def main():
print("Start Request-Test")
url = 'http://192.168.56.101/requestTest'
#file = open('test.xml', 'rb')
files = {'file': open('test.xml','rb')}
r = requests.post(url, files=files, headers={'Content-Type': 'text/xml'})
r.text
r.content
with open('test.txt', 'wb') as f:
f.write(r.content)
print("Fertig!")
if __name__ == "__main__":
main()
Jetzt hab ich einige Varianten ausprobiert, leider ohne Erfolg. Alle Anleitungen die ich gefunden habe sind so oder ähnlich aufgebaut.
Beim debuggen sehe ich, dass das File und die Url richtig gefunden wird.
Was mach ich falsch oder wo ist der Fallstrick?
P.S. ich verwende Python 3.5 und Eclipse