リクエスト URL が無効な場合、Simple Message Queue (旧称:MNS) サーバーは「Http request URL format invalid」エラーを返します。このトピックでは、さまざまなシナリオでこの問題をトラブルシューティングする方法について説明します。
問題の説明
Simple Message Queue (旧称:MNS) サーバーは次のエラーを返します:
[Error Code]:InvalidRequestURL, [Message]:Http request URL format invalid問題の原因
このエラーは、次の理由で発生する可能性があります:
原因 1: SDK を使用する際のエンドポイントが正しくない。
原因 2: キュー API を呼び出す際に、プロトコルバージョンがリクエスト URL と一致しない。
ソリューション
ソリューションは原因によって異なります。詳細については、次のセクションをご参照ください。
原因 1
Simple Message Queue (旧称:MNS) SDK を使用する場合は、コード内のエンドポイントの値が正しいことを確認してください。次のステップを実行して、正しいエンドポイントを取得できます:
よくある間違いは、コード内でキューアドレスをエンドポイントとして指定することです。これによりエラーが発生します。例:
正しい例: String endpoint = "http://4xxx4.mns.cn-beijing.aliyuncs.com/";
誤った例: String endpoint = "http://4xxx4.mns.cn-beijing.aliyuncs.com/queues/LTQueue/";
Simple Message Queue (旧称:MNS) コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、リージョンを選択します。
キュー ページで、表示するキューを見つけ、[アクション] 列の 詳細情報 をクリックします。
[キュー詳細] ページの エンドポイント セクションで、インターネット経由でのアクセス および イントラネット経由でのアクセス 経由でキューにアクセスするために使用されるエンドポイントを表示します。
説明HTTP または HTTPS リクエストを送信してエンドポイントにアクセスできます。
正しいエンドポイントを使用して接続をテストします。
原因 2
キュー API を使用する場合は、新しいプロトコルとレガシープロトコルのどちらを使用しているかを確認してください。リクエスト URL がプロトコルバージョンの仕様に従っていることを確認してください。次の表に、新しいプロトコルとレガシープロトコルの仕様を示します。
プロトコルバージョン | CreateQueue | SendMessage |
新しいプロトコル (x-mns-version:2015-06-06) | PUT /queues/[$Queue_Name] | POST /queues/[$Queue_Name]/messages |
レガシープロトコル (x-mqs-version:2014-07-08) | PUT /[$Queue_Name] | POST /[$Queue_Name]/messages |
[$Queue_Name] はキュー名です。