HTTP通信についてのテスト方法とパラメータ送信に関する質問

このQ&Aのポイント
  • .NETのMicrosoft Application Center Testを使用してHTTP通信のテストを行いたいが、パラメータを送信できずエラーが発生している。
  • VBSの記述でoRequest.VerbをGETからPOSTに変更したが、Content-Lengthが無いためリクエストが受け付けられないエラーが発生する。
  • どのようにコーディングすればパラメータを送信できるようになるか、教えていただきたい。
回答を見る
  • ベストアンサー

HTTP通信について教えてください

.NETのMicrosoft Application Center Testを使って HTTP通信のテストをしようとしたのですが、 データを送信できません。 VBSの記述は以下のとおりです。 (新規テスト作成で記録したロジックです) ========================================================= Option Explicit Dim fEnableDelays fEnableDelays = False Sub SendRequest1() Dim oConnection, oRequest, oResponse, oHeaders, strStatusCode If fEnableDelays = True then Test.Sleep (0) Set oConnection = Test.CreateConnection("xxx.xxx.xx.xxx", xx, false) If (oConnection is Nothing) Then Test.Trace "Error: Unable to create connection to xxx.xxx.xx.xxx" Else Set oRequest = Test.CreateRequest oRequest.Path = "/test/test.aspx"+"?TESTCD=111111" oRequest.Verb = "POST" oRequest.HTTPVersion = "HTTP/1.0" set oHeaders = oRequest.Headers oHeaders.RemoveAll oHeaders.Add "Accept", "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*" oHeaders.Add "Accept-Language", "ja" oHeaders.Add "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)" 'oHeaders.Add "Host", "xxx.xxx.xx.xxx" oHeaders.Add "Host", "(automatic)" oHeaders.Add "Cookie", "(automatic)" Set oResponse = oConnection.Send(oRequest) If (oResponse is Nothing) Then Test.Trace "Error: Failed to receive response for URL to " + "/test/test.aspx" Else strStatusCode = oResponse.ResultCode End If oConnection.Close End If End Sub Sub Main() call SendRequest1() End Sub Main ========================================================= このロジックで oRequest.Verb = "GET"で実行したら パラメータが送られていないようだったので oRequest.Verb = "POST" にして実行してみましたが エラー411、Content-Length が無いためリクエストを受け付けません で、うまくいきません。 どのようにコーディングすれば、パラメータを送信してテストが出来るようになるのでしょうか? 長文となってしまい申し訳ありませんが、ご存知の方がおりましたら ご教授ください。 おねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

POSTの場合 Pathは oRequest.Path = "/test/test.aspx" とQueryStringを無しにして oHeaders.Add "Content-Length", "(automatic)" をoHeaders.Add "Cookie", "(automatic)"次に挿入 oRequest.Body = "TESTCD=111111" も挿入 としてやればいいように思います GETの場合これでいいように思いますが ・・・ テスト結果のHTTPエラーなどが報告されるのでしょうか? # お使いの開発/実行環境の情報も明記しましょう

関連するQ&A

  • エクセルVBAでOutlookメールの書式を変える

    エクセル2010です。 下記のようなコードでOutlookメールを作成したとき、たとえば  "ABC株式会社" だけを赤字で太文字にするにはどう書けばよいのでしょうか? Sub TEST001()   Dim oApp As Object   Dim objMAIL As Object   Dim strMOJI(1) As String   On Error Resume Next   Set oApp = GetObject(, "Outlook.Application")   On Error GoTo 0   If oApp Is Nothing Then     Set oApp = CreateObject("Outlook.Application")   End If   Set objMAIL = oApp.CreateItem(0)   strMOJI(0) = "こんにちは!" & vbCrLf & _   "色付けテストです。" & vbCrLf & _   "よろしくおねがいします。" & vbCrLf   strMOJI(1) = vbCrLf & _   "以上です。" & vbCrLf & _   "ABC株式会社" & vbCrLf & _   "emaxemax"   objMAIL.To = "xxxx@xxx.co.jp"   objMAIL.CC = "yyyy@xxx.co.jp"   objMAIL.Subject = "テスト"   objMAIL.Body = strMOJI(0) & strMOJI(1)   objMAIL.Display End Sub

  • (VBA)フィルタがかかっているかどうかの判断方法

    フィルタがかかっているかどうかを取得したいのですが フィルタがかかっているシートにて Sub test1() If ActiveSheet.FilterMode Then MsgBox "フィルタがかかってます" End If End Sub Sub test1の1() If ActiveSheet.FilterMode = True Then MsgBox "フィルタがかかってます" End If End Sub を実行しても"フィルタがかかってます"は表示されません。 Sub test2() If Rows(1).FilterMode Then MsgBox "フィルタがかかってます" End If End Sub Sub test3() If ActiveSheet.Rows(1).FilterMode Then MsgBox "フィルタがかかってます" End If End Sub こちらは オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438) になってしまいます。 フィルタがかかっているか調べる方法はありますか? よろしくお願いします。

  • エクセルVBAでメールに画像添付

    エクセル2010です。 以下のようなVBAでOutlookメールを作成しているのですが、本文の中に画像を添付する方法がわかりません。 下記で言えば strMOJI(0) と strMOJI(1) の間に画像を張り付けたいのです。 画像ファイルを添付するのではなく画像として見えるようにしたいのです。 どのように書けばよろしいでしょうか? Sub TEST001()   Dim oApp As Object   Dim objMAIL As Object   Dim strMOJI(1) As String   On Error Resume Next   Set oApp = GetObject(, "Outlook.Application")   On Error GoTo 0   If oApp Is Nothing Then     Set oApp = CreateObject("Outlook.Application")   End If   Set objMAIL = oApp.CreateItem(0)   strMOJI(0) = "こんにちは!" & vbCrLf & _   "テストです。。" & vbCrLf & _   "よろしくおねがいします。" & vbCrLf   strMOJI(1) = vbCrLf & _   "以上です。" & vbCrLf & _   "ABC株式会社" & vbCrLf & _   "emaxemax"   objMAIL.To = ""   objMAIL.CC = "xxxx@xxx.co.jp"   objMAIL.Subject = "テスト"   objMAIL.Body = strMOJI(0) & strMOJI(1)   objMAIL.Display End Sub

  • ファイルが既に開いているかどうかを取得するには

    Sub Sample1() Dim App As Object Dim MyFileName As String Set App = CreateObject("Excel.Application") MyFileName = "C:\Users\test.xlsm" With App .Workbooks.Open Filename:=MyFileName .Visible = True If .ReadOnly Then MsgBox "既に開いています" App.Quit '既に開いているのなら、閉じる End If End With End Sub このようなコードを作ったのですが、どうやらIf .ReadOnly Thenの部分が間違っているようです。 エラーになります。 既にファイルが開いているか、読み取り専用かどうかを取得するコードをご教授ください。

  • For~Nextステートメント  途中で止めるには

    For~Nextステートメント で、変数が5なら止めたいのですがIFを使わない方法があったと思うのですが、 忘れてしまいました。 今は、 +++++++++++++++++++++++++++++ Sub test() Dim i As Long For i = 2 To 10 If i = 5 Then Stop End If Next End Sub +++++++++++++++++++++++++++++ としていますが、 If i = 5 Then Stop End If じゃなくても、一つのメソッドで出来た気がするのですが、 わかる方いらっしゃいますか? ご回答よろしくお願いします。

  • 元のプロシージャーを取得するプロパティ

    Sub test1() Call test2 End Sub Sub test2() If ?? Then MsgBox "test1から実行されたマクロです。" End If End Sub 上記のコードで どこから実行されたプロシージャ化を取得する方法はありますか? 現在は、 Dim bl_test1_yes As Boolean Sub test1() bl_test1_yes = True Call test2(bl_test1_yes) End Sub Sub test2(bl_test1_yes) If bl_test1_yes = True Then MsgBox "test1から実行されたマクロです。" End If End Sub としていますが、 元のプロシージャーを取得するプロパティがあれば教えてください。

  • エクセルマクロの質問です

    こんばんわ! 同様のデータの列を検索したいのですが、良い方法が思いつきません。 色々考えてできたのが下記の方法ですが、項目が増えると大変なので、簡易化したいです。 今回簡易化したいのは↓ Sub test() Dim test(1 To 10) As Integer Dim stok_date As String For i = 1 To 5 Step 1 stok_date = Cells(1, i) For j = 1 To 10 Step 1 If stok_date = Cells(3, j) Then If test(1) = Empty Then test(1) = j ElseIf test(2) = Empty Then test(2) = j ElseIf test(3) = Empty Then test(3) = j ElseIf test(4) = Empty Then test(4) = j ElseIf test(5) = Empty Then test(5) = j End If Exit For End If Next j Next i End Sub 一行目○列目のデータが三行目の何列目にあるのかをそれぞれtest(○)に入れたい。 といった具合です。 アドバイスの程よろしくお願いいたします。

  • コマンドバーのコントロールって全部で何個あるの?

    全部一覧にして書き出してみたいのですが エラーを無視してる為、最高いくつあるのかわかりません。 Sub tes() Dim myBar As CommandBar Dim myCmd As String Dim blYes As Boolean Dim i As Long myCmd = "test" For Each myBar In CommandBars If myBar.NameLocal = myCmd Then blYes = True '既にmyCmdがあるのなら削除する Application.CommandBars("test").Delete Exit For End If Next Set myBar = CommandBars.Add(Name:="test") On Error Resume Next For i = 1 To 2000 myBar.Controls.Add ID:=i Next i myBar.Visible = True Set myBar = Nothing End Sub

  • beep音ではなく音楽(mp3ファイル)を鳴らしたい (VBA)

    Sub test() If ●● Then Else "○○.mp3" ’←10秒間ならしたい End If End Sub は可能でしょうか? ご教授よろしくお願いします!!!

  • 現在選択中のセルの中に空白があるのなら

    現在選択中のセルの中に空白があるのなら と言うコードを作りたいのですが Sub test() Dim r As Range Set r = Selection 'if rの中に空白があるなら then MsgBox "空白セルがあります" 'end if Set r = Nothing End Sub ここまでしかわかりませんでした。 ifステートメントどうすればいいか教えていただけますか? ご教授よろしくお願いします。

専門家に質問してみよう