1

Python を使用して OneNote に MultiPart POST 要求を書き込む方法を理解しようとしています。これが私がこれまでに行ったことです:

url = ROOT_URL+"pages"

headers = {"Content-Type":"multipart/form-data; boundary=MyAppPartBoundary",
           "Authorization" : "bearer " + access_token}         

txt = """--MyAppPartBoundary
        Content-Disposition:form-data; name="Presentation"
        Content-type:text/html

        <!DOCTYPE html>
        <html>
          <head>
            <title>One Note Text</title>
          </head>
            <body>
              <p>Hello OneNote World</p>
            </body>
        </html>
        --MyAppPartBoundary--
        """

session = requests.Session()
request = requests.Request(method="POST", headers=headers,
                           url=url,  data=txt)
prepped = request.prepare()
response = session.send(prepped)

ただし、実行しようとすると、「マルチパート ペイロードの形式が正しくありませんでした」というエラー応答が表示されます。私も次のように試しました:

url = ROOT_URL+"pages"

headers = {"Content-Type":"multipart/form-data; boundary=MyAppPartBoundary",
           "Authorization" : "bearer " + access_token} 

txt = """<!DOCTYPE html>
        <html>
          <head>
            <title>One Note Text</title>
          </head>
            <body>
              <p>Hello OneNote World</p>
            </body>
        </html>"""    

files = {'file1': ('Presentation', txt, 'text/html')}

session = requests.Session()
request = requests.Request(method="POST", headers=headers,
                           url=url,  files=files)
prepped = request.prepare()
response = session.send(prepped)

同じこと。非常に基本的なものでも:

headers = {"Content-Type":"multipart/form-data; boundary=MyAppPartBoundary",
           "Authorization" : "bearer " + access_token}

files = {'file1': ('filename', 'data', 'text/plain')}

r = requests.post(url, headers=headers, files=files)

そのエラーを出します。私は何を間違っていますか?

4

1 に答える 1

0

最初の予感: リクエスト本文の改行が (LF だけでなく) CRLF であることを確認してください。マルチパートのRFC仕様は、それについて非常にうるさいです

于 2016-03-18T20:12:54.373 に答える