我正在编写一个脚本,让用户重新下载图像,使其始终具有最新版本。这对于一些我在谷歌上找到的静态图片来说很好。但是,当我试图在生成的图像或另一个上使用它时,它会返回我的HTML代码:
Error: 0 (Unknown error)
Content-Type: text/html
Content: <html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx</center>
</body>
</html>到目前为止我的代码是:
def onNetworkReply(self, reply):
try:
print("Error: %s (%s)"%(reply.error(), reply.errorString()))
print("Content-Type: %s"%reply.header(QNetworkRequest.ContentTypeHeader))
print("Content: %s"%reply.readAll())
#if reply.header(QNetworkRequest.ContentTypeHeader) == "image/jpeg":
imgraw = reply.readAll()#.data()#.decode('utf-8')
temp_dir = gettempdir()
filename = self.generateAvatarFileName(self.schid)
tmp = path.join(temp_dir, filename)
fn = QFile(tmp)
fn.open(QIODevice.WriteOnly)
fn.write(imgraw)
fn.close
#with open(tmp, 'wb') as f: f.write(imgraw)
ts3lib.logMessage("Uploading %s as new avatar."%tmp, ts3defines.LogLevel.LogLevel_INFO, "PyTSon Script", 0)
self.uploadAvatar(self.schid, tmp, filename)
except:
from traceback import format_exc
try: ts3lib.logMessage(format_exc(), ts3defines.LogLevel.LogLevel_ERROR, "PyTSon Script", 0)
except: print(format_exc())
reply.deleteLater()发布于 2017-01-18 11:12:44
HTTP响应发现302是URL重定向状态。如果使用QT5.6或更高版本,可以在QNetworkRequest中启用自动重定向(QNetworkRequest::FollowRedirectsAttribute)。
QString url("http://your/url/pic.png");
QNetworkRequest req(QUrl(url));
req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);QNetworkRequest::FollowRedirectsAttribute 仅请求类型: QMetaType::Bool (默认值: false)指示Network是否应自动遵循HTTP重定向响应。目前不允许不安全的重定向,即从"https“重定向到"http”协议。(这个数值是在5.6中提出的。)
https://stackoverflow.com/questions/41712636
复制相似问题