<div dir="ltr"><div>Hi Raymond,</div><div><br></div><div>can you please file a bug and assign it to me, I'll have a look.</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Jan 22, 2022 at 1:32 PM Raymond Nijssen <<a href="mailto:r.nijssen@terglobo.nl">r.nijssen@terglobo.nl</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dear all,<br>
<br>
One of my plugins stopped working in QGIS master, because some of the <br>
requests seem invalid. I spent quite some time on debugging but cannot <br>
find the problem.<br>
<br>
This script runs in 3.22.3 but not ion 3.23. It uploads an xml file to a <br>
validation service. It should print: {'successful': True, 'errors': [], <br>
'warnings': []}<br>
<br>
Anyone a clue? I'm feeling that the best way would be using the <br>
QgsBlockingNetworkRequest post() function but that does not seem to work <br>
with a QHttpMultiPart variable.<br>
<br>
Thanks!<br>
Raymond<br>
<br>
<br>
<br>
import json<br>
<br>
manager = QgsNetworkAccessManager.instance()<br>
<br>
url = QUrl('<a href="https://connect.aerius.nl/api/v7/utility/validate" rel="noreferrer" target="_blank">https://connect.aerius.nl/api/v7/utility/validate</a>')<br>
<br>
request = QNetworkRequest(url)<br>
<br>
multi_part = QHttpMultiPart(QHttpMultiPart.FormDataType)<br>
<br>
file_parts = []<br>
gml_fn = <br>
'/home/raymond/terglobo/projecten/aerius/202007_calc_input_plugin/demodata/test_20220121/test_kort.gml'<br>
<br>
file_parts.append({'name': 'filePart', 'file_name': gml_fn, 'file_type': <br>
'application/gml+xml'})<br>
<br>
for fp in file_parts:<br>
     file = QFile(fp['file_name'])<br>
     file_part = QHttpPart()<br>
     file_part.setHeader(QNetworkRequest.ContentTypeHeader, <br>
QVariant(fp['file_type']))<br>
     name = fp['name']<br>
     file_part.setHeader(QNetworkRequest.ContentDispositionHeader,<br>
         QVariant(f'form-data; name="{name}"; <br>
filename="{QFileInfo(file).fileName()}"'))<br>
     file.open(QIODevice.ReadOnly)<br>
     file_part.setBodyDevice(file)<br>
     file.setParent(multi_part)<br>
     multi_part.append(file_part)<br>
<br>
# This line already fires an invalid request in qgis 3.23:<br>
reply = <a href="http://manager.post" rel="noreferrer" target="_blank">manager.post</a>(request, multi_part)<br>
<br>
<br>
# In qgis 3.22 the request is ok. The rest of the code will wait for the <br>
json<br>
# reply and display it.<br>
<br>
<br>
# make request blocking<br>
loop = QEventLoop()<br>
reply.finished.connect(loop.quit)<br>
loop.exec_()<br>
<br>
<br>
bstr = reply.readAll()<br>
result_dict = json.loads(bytes(bstr))<br>
print(result_dict)<br>
<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
QGIS-Developer mailing list<br>
<a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank">QGIS-Developer@lists.osgeo.org</a><br>
List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Alessandro Pasotti</div><div>QCooperative:  <a href="https://www.qcooperative.net" target="_blank">www.qcooperative.net</a><br></div>ItOpen:   <a href="http://www.itopen.it" target="_blank">www.itopen.it</a></div></div>