アプリ版:「スタンプのみでお礼する」機能のリリースについて

ASP.NET(c sharp)、.netフレームワーク2.0環境です。

認証(ベーシック認証)付きのREST APIを使いたいのですが、
リクエストの投げ方が理解できず困っています。
URLを指定してリクエストを投げると動くものなのですが…。

使い方としては、
・POSTリクエストを使用
・"item"をキーにして、対象になるURLの配列を指定
とのことです。
{
"item" : [
"http://www.yahoo.co.jp/test1.jpg",
"http://www.google.co.jp/test2.jpg"
]
}
↑サンプルとして載っていました

以下の通り作ってみましたが、うまく動きません。
URLの配列指定がうまく出来ていないのではないかと思うのですが、
方法を教えていただけないでしょうか。
宜しくお願いします。

//HttpWebRequestの作成
WebRequest webreq = WebRequest.Create("https://api.test.com");
webreq.Method = "POST";
//認証の設定
webreq.Credentials = new System.Net.NetworkCredential("test@test.com", "testpass");
//POSTするデータ
string postData = "item=http://www.yahoo.co.jp/test1.jpg";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
webreq.ContentType = "application/json";
webreq.ContentLength = byteArray.Length;
Stream dataStream = webreq.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
WebResponse response = webreq.GetResponse();
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();

reader.Close();
dataStream.Close();
response.Close();

A 回答 (1件)

postDataがどう見てもJSON形式では無いです。


string postData = @"{
""item"": [
""http://www.yahoo.co.jp/test1.jpg""
]
}";
のように,正しく要求された形のJSONを送る必要があるのではないかと。
# APIが公開されている実サイトが書かれていないので,想像でしか書けませんが。

この回答への補足

https://api.ccu.akamai.com/ccu/v2/docs/index.html

apiはこれなんです。
正しくはobjectなんですが、ご指摘の通りJSON形式にして、見直してみました。

しかし、要求が不適切(400)と出てしまいました。

補足日時:2014/05/08 13:37
    • good
    • 0
この回答へのお礼

すみません、見直してみたところうまくリクエストが返ってきました。
大変助かりました、ありがとうございました。

お礼日時:2014/05/08 13:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!