質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

3229閲覧

Python RequestsにてXMLをPOSTする方法

warudakumi

総合スコア23

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2022/05/30 09:44

Pythonにて、楽天クーポンAPIにRequestsを使用しXMLをPOSTする方法

環境
Mac OS 10.15
Jupyter notebook

エクセルにてCSVを管理し、XMLへ書き出し
それを読み込みrequests.postしたいと考えております

エクセルCSVからXMLへの書き出しは下記を参考にさせて頂きました
https://www.gis-py.com/entry/py-csv2xml

その他楽天APIクーポン情報を取得があり
JSONによりGETで取得はでき
POSTも簡単に考えておりました

考え方が違うのか、XMLの送り方が違うのか
<Response [400]> となります

XMLに必須項目は入っております

色々と検索をしてみましたが
解決までたどり着けず投稿をさせていただきました
ご助言頂けましたら幸いです

# ■■■■■■■■ 認証情報 ■■■■■■■■■■ serviceSecret=b"*******" licenseKey=b"*********" headers = { 'Authorization' : b"ESA " + base64.b64encode(serviceSecret + b':' +licenseKey), 'Content-Type': 'text/xml', } # post文字列生成 url = 'https://api.rms.rakuten.co.jp/es/1.0/coupon/issue' with open('/Users/***/Desktop/sample.xml', mode='rt', encoding='utf-8') as f: xml_string = f.read() root = ET.fromstring(xml_string) ret = ET.tostring(root, encoding='utf-8') #print(ret) res = requests.post(url, data=ret, headers=headers)

その他試したXMLの読み込み方

tree = ET.parse('/Users/***/Desktop/sample.xml') root = tree.getroot()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bsdfan

2022/05/30 23:29

400 で帰ってきたレスポンスのbodyにエラーの詳細が入ってたりしませんか?
warudakumi

2022/05/31 07:19

ご連絡誠に有難う御座います レスポンスの中身を確認した所エラー内容が Request data is wrong format:リクエストXMLのフォーマットが正しくない場合、など、とございました 楽天のサンプルXMLがありましたので、改めて実行して見た所 200 が帰ってきました 戻りの内容をみると、所々エラーがあったりしておりますので、修正しながら対応したいと思います 戻り値の詳細を確認しないと解決が出来ない事がわかり勉強になりました 助言頂きありがとうございます
guest

回答1

0

自己解決

bsdfan 様の助言を参考に解決致しました
ありがとうございます

投稿2022/05/31 08:11

warudakumi

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問