Hallo,
danke für die Antworten.
Das versenden mittels Post funktioniert jetzt ganz gut.
Allerdings habe ich jetzt ein ähnliches Problem
Ich sende von Java ein ODF-File als Post-Response im HTTP.Body zurück an Python (Datenquelle ByteArrayStream)
Die Daten kommen auch vollständig an, allerdings wenn ich die daten mittels Get - Response an den Benutzer zurück
sende wird das ODF File ungültig (auf der Java seite ist es gültig da ich es extra zwischgengespeichert habe, um dort
den Fehler auszuschließen)
An sich die Zwei Methoden
Der Post (nur zu vollständigkeit halber)
Code: Alles auswählen
def httpPost(self,server,port,address,file,template,arguments):
headers = {"Content-type": "text/html",
"Accept": "text/html",
"Template":str(template),
"Arguments":str(arguments)}
conn = httplib.HTTPConnection(str(server),str(port),timeout=10000)
conn.request("POST", str(address), str(file),headers)
responseStatus ="500"
responseReason = "Internal Server Error"
try:
response = conn.getresponse()
responseStatus = response.status
responseReason = response.reason
data = response.read()
except Exception, e:
print e
conn.close()
return data,responseStatus,responseReason
Get-Versenden (File an den Benutzer senden)
Code: Alles auswählen
def sendOdfFile(self,fileName,fileExtension, fileContent,req,responseStatus,responseReason):
print type(fileContent)
# if isinstance(fileContent, unicode): #unicode
# fileContent = fileContent.encode('utf8')
print fileContent
req.send_response("%s %s"%(responseStatus,responseReason))
req.send_header('Content-Type', '"Content-type": "application/x-www-form-urlencoded"')
req.send_header('Content-Length', len(fileContent))
if fileName and fileExtension:
req.send_header('Content-Disposition', 'filename=%s.%s' %
(fileName, fileExtension))
req.end_headers()
req.write(fileContent)
raise RequestDone
Ausgabe des Files in der Console "sieht eigentlich korrekt aus"
Ich denke das Problem ist, dass das Ergebnis des Post-Response ein String ist (type(fileContent)) = str,
wahrscheinlich müsste ich das dort in bytes umwandeln?
Oder mach ich einfach nur einen Fehler bei den HTTP Headers?
Danke schonmal
Grüße
Stefan