次の簡単なコードの場合、
Red []
#include %tools.red
url: to url! rejoin ["http://somesite.com:7466/japi"]
response: write url [
post [
Content-Type: "application/json"
req: "requestinfo"
list: "This is a pie."
]
{}
]
print response
結果は次のようになります。
{"Status": "fail"、 "Value": "unknown request:\ u0026 {POST / japi HTTP / 1.1 1 1 map [Accept:[ / ] Content-Type:[application / json] Req:[requestinfo] List :[これはパイです。] Content-Length:[0]] {} \ u003cnil \ u003e 0 [] false somesite.com:7466 map [] map [] \ u003cnil \ u003e map [] 176.116.100.233:31144 / japi \ u003cnil \ u003e \ u003cnil \ u003e \ u003cnil \ u003e 0xc0002a2640} "}
私の質問は、なぜパラメータ(req、listなど)が自動的に大文字になるのですか?
HTTP / 1.1 RFCは、セクション4.2で次のように述べています。
各ヘッダーフィールドは、名前とそれに続くコロン( ":")およびフィールド値で構成されます。フィールド名では大文字と小文字は区別されません。
したがって、ヘッダー名の最初の文字を大文字にしても、準拠したHTTPサーバーに副作用はありません。
ただし、使用している「パラメータ」という用語とreq: "requestinfo"
ソースコードの一部から、誤ってヘッダーリストに入れて、POSTデータとして渡そうとしているのではないかと思います。その場合、それらを渡す正しい方法は次のとおりです。
Red []
#include %tools.red
url: http://somesite.com:7466/japi
response: write url [
POST [Content-Type: "application/json"]
"req=requestinfo&list=This%20is%20a%20pie."
]
print response
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加