証明書をSystem.Net.WebRequestを使用して、post送信したいです。
※実はYahooショッピングのストア注文APIの証明書なんですが・・・
証明書ファイルは、crtファイル/keyファイルをもらい受け、それらをPKCS12ファイル形式にして、.p12ファイルにしています。
※証明書の処理に関しては、windowsベースでのopensslコマンドを使用してファイルを出力しました。(testKey.p12)
X509Certificate2を使用して、証明書ファイル(バイト型へ変換)とパスワードを読み込み、それをリクエストすればよいと思うのですが、どのようにこれらをリクエストすればよいのかわかりません。
ご教授願います。
--以下注文APIのコード--
※仕様は公開されているので、ほぼそのまま記述します。
Dim x509 As New X509Certificate2 //証明書ファイルパスを指定し、それをバイト型変換、証明書ファイル作成したときのパスワード x509 = New X509Certificate2(ReadFileAsBytes(@証明書Path - 'testKey.p12'), @パスワード, X509KeyStorageFlags.MachineKeySet) //文字コードを指定する Dim enc As System.Text.Encoding = _ System.Text.Encoding.GetEncoding("utf-8") //POST送信する文字列(XML)を作成 Dim postData As String = _ GetRequestXMLData_OrderList(@IsSeen, @開始日時,@終了日時, "1,2", @ストアアカウント) //バイト型配列に変換 Dim postDataBytes As Byte() = _ System.Text.Encoding.ASCII.GetBytes(postData) //WebRequestの作成 Dim req As System.Net.WebRequest = _ System.Net.WebRequest.Create("https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/orderList") //ヘッダ指定 req.Headers.Add("Authorization: Bearer " & @アクセストークン) //メソッドにPOSTを指定 req.Method = "POST" req.ContentType = "application/x-www-form-urlencoded" //POST送信するデータの長さを指定 req.ContentLength = postDataBytes.Length //データをPOST送信するためのStreamを取得 Dim reqStream As System.IO.Stream = req.GetRequestStream() //送信するデータを書き込む reqStream.Write(postDataBytes, 0, postDataBytes.Length) reqStream.Close() //サーバーからの応答を受信するためのWebResponseを取得 Dim res As System.Net.WebResponse = req.GetResponse() -- 以下省略 --


回答1件
あなたの回答
tips
プレビュー