Azure-Samples / Azure-Samples/cognitive-services-quickstart-code

Form Recognizer API with Python for PDF throwing "BadArgument" error

オープン
#323 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Jupyter Notebook
スター
389
フォーク
556
平均マージ
3日 12時間
マージ済み PR(30日)
1

説明

> The issue
> ---------------------------------------------------------------

The Quickstart for Form Recognizer REST API with Python is not functioning any more. It throws the following error:
`
POST analyze failed:
{"error":{"code":"BadArgument","message":"Bad or unrecognizable request JSON or binary file."}}
`

Not sure if this has to do with the update to Form Recognizer REST API v3.0, but is not functioning for PDF anymore. It worked a few weeks ago.

### My code

```
from requests import get, post, Request, Session

endpoint = r"https://westeurope.api.cognitive.microsoft.com"
key = ""

def get_url(filename, endpoint, apim_key):

# v2.1
post_url = endpoint + "/formrecognizer/v2.1/layout/analyze"

headers = {
# Request headers
'Content-Type': 'application/pdf',
'Ocp-Apim-Subscription-Key': apim_key,
}

with open(filename, "rb") as f:
data_bytes = f.read()

try:
resp = post(post_url, data=data_bytes, headers=headers)
if resp.status_code != 202:
print("POST analyze failed:\n%s" % resp.text)
return None
print("POST analyze succeeded: %s" % resp.headers["operation-location"])
get_url = resp.headers["operation-location"]
return get_url
except Exception as e:
print("POST request failed:\n%s" % str(e))
return None

resp_url = get_url(source, endpoint, key)
```

### This issue is for a: (mark with an `x`)
```
- [ ] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [x] regression (a behavior that used to work and stopped in a new release)
```

### Minimal steps to reproduce
> Follow the Quickstart: Extract text and layout information using the Form Recognizer REST API with Python

### Any log messages given by the failure
> POST analyze failed:
{"error":{"code":"BadArgument","message":"Bad or unrecognizable request JSON or binary file."}}

### Expected/desired behavior
> I would expect to get a url returned

### OS and Version?
> Working on Windows 10, using Visual Studio Code

### Versions
> requests == 2.28.1
> Python == 3.9.13

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず「Extract text and layout information using the Form Recognizer REST API with Python」Quickstart に従い、そのリクエストを、失敗している get_url 関数および報告されている Form Recognizer v2.1 エンドポイントと比較します。提供された PDF リクエストを使用して BadArgument 応答を再現し、修正された Quickstart がエラーなしで操作 URL を返すことを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
api, documentation
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
30/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。