■VS2010
■SQLServer2014, SQLServerManagementStudio
WCFサービスを実装し、POSTされてきたHTTPRequestから引数を受け取り、その引数を使用してDBを更新する処理を行おうと思っています。
HttpRequest:
http://~~/WCFサービス名/第1引数/第2引数/第3引数
このような形での引数の渡し方は可能なのでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答1件
0
ベストアンサー
http://~~/WCFサービス名/第1引数/第2引数/第3引数
このような形での引数の渡し方は可能なのでしょうか。
POST するのですよね? であれば URL に渡す情報を含める必要はなくて、コンテンツに含めることになるはずですが。
例えば以下のような WCF サービスで、GetCarsByDoors を呼ぶ際は POST 以外は受け付けない設定になっていますが、その場合引数の doors は URL ではなくコンテンツに含めて送信します。
WCF と jQuery AJAX
http://surferonwww.info/BlogEngine/post/2015/10/15/wcf-and-jquery-ajax.aspx
jQuery.ajax を使うなら上の記事のサンプルコードの JavaScript のメソッド getCarsByDoors() のようにします。
HttpWebRequest を使うなら以下のようにします。
HttpWebRequest endpointRequest = (HttpWebRequest)HttpWebRequest.Create("http://msdntestnew/WebAppProject/carservice.svc/GetCarsByDoors"); endpointRequest.Method = "POST"; endpointRequest.ContentType = "application/json; charset=utf-8"; string postData = "{\"doors\":5}"; Encoding encoding = Encoding.GetEncoding("utf-8"); byte[] byte1 = encoding.GetBytes(postData); endpointRequest.ContentLength = byte1.Length; Stream requestStream = endpointRequest.GetRequestStream(); requestStream.Write(byte1, 0, byte1.Length); HttpWebResponse endpointResponse = (HttpWebResponse)endpointRequest.GetResponse(); Stream responseStream = endpointResponse.GetResponseStream(); StreamReader readStream = new StreamReader(responseStream, encoding); Console.WriteLine("\r\nResponse stream received."); Char[] read = new Char[256]; // Reads 256 characters at a time. int count = readStream.Read(read, 0, 256); Console.WriteLine("HTML...\r\n"); while (count > 0) { // Dumps the 256 characters on a string and displays the string to the console. String str = new String(read, 0, count); Console.Write(str); count = readStream.Read(read, 0, 256); } Console.WriteLine(""); endpointResponse.Close(); requestStream.Close(); responseStream.Close(); readStream.Close();
上のコードの実行結果は以下の通りになります。
Response stream received.
HTML...
{"GetCarsByDoorsResult":[{"Colour":"Red","Doors":5,"Make":"Audi","Model":"A4","Price":2995,"Year":1995},{"Colour":"Black","Doors":5,"Make":"Ford","Model":"Focus","Price":3250,"Year":2002},{"Colour":"Red","Doors":5,"Make":"Renault","Model":"Laguna","Price":3995,"Year":2000},{"Colour":"Green","Doors":5,"Make":"Toyota","Model":"Previa","Price":2695,"Year":1998}]}
投稿2017/03/15 06:37

退会済みユーザー
総合スコア0
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/03/15 07:14 編集
退会済みユーザー
2017/03/15 08:40
退会済みユーザー
2017/03/16 00:47
退会済みユーザー
2017/03/16 00:49
退会済みユーザー
2017/03/16 02:30
退会済みユーザー
2017/03/16 02:52