回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>在
我使用python请求将post请求提交到特定的url。此url有一个查询参数,该参数包含我正在上载的文件的实际文件路径,带有实际的冒号(“:”)和反斜杠(“\”)(它不接受%3A或%5C)。我不知道该怎么办。在</p>
<p>在
这是我的代码:</p>
<pre><code>with requests.Session() as s:
payload_10_vo_params = {
'hidInputControlValues': this_hidInputControlValues10,
'hidFormNames': this_hidFormNames10,
'hidToken': this_hidToken10,
'hidFileNm': r"C:\fakepath\{}".format(this_FileName),
'hidFileSourceId': '',
'ReUploadInd': ''
}
payload10_mpe_vo = MultipartEncoder(
[
('hidLoanTranSaveFlag', 'TRUE'),
('hidUpfrontMIPct', ''),
('radLeadRequestOptBtnImportRetNum', 'LUPL'),
('txtCorrCompId', ''),
('cboLeadRequestFileTypCd', 'DU32'),
('txtLeadRequestSelectFile', (this_FileName, open(this_FileName, 'rb'), 'application/octet-stream')),
('txaLoanTranComments', ''),
], boundary=ct_disp_bndry_10_final_str)
headers10 = {
"Accept": "application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*",
"Accept-Language": "en-US",
"User-Agent": "Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/7.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Tablet PC 2.0)",
"UA-CPU": "AMD64",
"Content-Type": "multipart/form-data; boundary={}".format(ct_disp_bndry_10_final_str),
"Referer": "referer string",
"Host": "host string"}
resp10 = s.post(url10, headers=headers10, params=payload_10_vo_params, data=payload10_mpe_vo)
</code></pre>
<p>在
这是fiddler的响应url的值,请看最后一个参数(<code>hidFileNm</code>)的值,其他都匹配得很好(那些特殊字符用于特殊字符§,它被请求完美地编码了)。在</p>
<blockquote>
<p>POST /SRVCorrBP/LeadMgmt/Application/Lead/LeadSubmitNew.jsp?hidInputControlValues=�DU32�Y�LUPL�C%3A%5CFAKEPATH%5CMAYRA%20CORTEZ.FNM�&hidFormNames=�frmLoanTran~TRUE~�&hidToken=1508961847871LSXG_EDTLeadSummary&hidFileNm=C:\fakepath\filename&hidFileSourceId=&ReUploadInd= </p>
</blockquote>
<p>在
我得到的是:</p>
<blockquote>
<p>/SRVCorrBP/LeadMgmt/Application/Lead/LeadSubmitNew.jsp?hidInputControlValues=%C2%A7DU32%C2%A7Y%C2%A7LUPL%C2%A7C%3A%5CFAKEPATH%5CBOPPPMVO.FNM%C2%A7&hidFormNames=%C2%A7frmLoanTran~TRUE~%C2%A7&hidToken=1512952710233LSXG_EDTLeadSummary&hidFileNm=C%3A%5Cfakepath%5Cfilename&hidFileSourceId=&ReUploadInd=</p>
</blockquote>
<p>如您所见,<code>hidFileNm</code>参数应该是</p>
<blockquote>
<p>hidFileNm=hidFileNm=C:\fakepath\filename</p>
</blockquote>
<p>但我的请求发布为:</p>
<blockquote>
<p>hidFileNm=C%3A%5Cfakepath%5Cfilename</p>
</blockquote>
<p>这个问题我已经用过很多次了。在</p>