2017-05-11 6 views
0

VB6からWebApiを呼び出す方法を教えてもらえますか?以下は、URL https://samplewebsiteurl/EnterpriseParticipantであり、これはそれが私が見つけたVB6のコードは以下のVB6からWEBAPIに電話をかける

{ 
"Client": "YYYA", 
"Platforms" : [], 
"ProgramIdentifier": "", 
"MapToEnterpriseView": "true", 
"ParticipantRequest": { 
    "FirstName" : "", 
    "LastName": "Test" 
} 
} 

を期待し、要求です。 WebApiを呼び出すために、VB6から要求をどのように渡す必要がありますか?私は使用する必要があるすべての参照?

Dim WinHttpReq As Object, status As String, response As String 
On Error GoTo errorfound 
Set WinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1" ;) 
WinHttpReq.open "POST", url, False 
WinHttpReq.send 
+0

ぎこちなくVBScriptを変換するようにあなたの "発見" のコードが見えます。しかし、(a。)あなたはJSONを送信していませんでした。(b。POSTは通常、Content-Typeの 'application/x-www-form-urlencoded'を予期しています。これを行うには、サーバが期待する要素名を知る必要があります.URLEncodingなどを実行してください。 – Bob77

+0

代わりに 'application/json'を使用する場合、サーバーはraw JSONを受け入れるかもしれません。 – Bob77

+0

はBob77 @私はいくつか見つかったと私は myMSXML.open "POST"、URL、真 myMSXML.setRequestHeader "のContent-Type"、「アプリケーション/ X-WWW VB6 設定myMSXML =新MSXML.XMLHTTPRequestに新しいです - form-urlencodedで」 myMSXML.setRequestHeader "のUser-Agent"、 "Bob77 @ Firefoxは" myMSXML.OnReadyStateChange =(下図参照)3.6.4 myMSXML.send YourPostDataString –

答えて

0

これはおそらく最も簡単な例である:

Option Explicit 

'Reference to: 
' 
' Microsoft WinHTTP Services, version 5.1 

Private Req As WinHttp.WinHttpRequest 

Private Sub Command1_Click() 
    With Req 
     .Open "POST", "http://localhost:8080/SomeAPI", Async:=False 
     .SetRequestHeader "Content-Type", "application/hal+json" 
     .SetRequestHeader "Accept", "text/*, application/hal+json, application/json" 
     'Note: Normally you don't include all of this whitespace, but 
     'we'll use it in this example: 
     .Send "{" & vbCrLf _ 
      & """Client"": ""YYYA""," & vbCrLf _ 
      & """Platforms"": []," & vbCrLf _ 
      & """ProgramIdentifier"": """"," & vbCrLf _ 
      & """MapToEnterpriseView"": ""true""," & vbCrLf _ 
      & """ParticipantRequest"": {" & vbCrLf _ 
      & " ""FirstName"" : """"," & vbCrLf _ 
      & " ""LastName"": ""Test""" & vbCrLf _ 
      & "}" & vbCrLf _ 
      & "}" 
     Label1.Caption = CStr(.Status) & " " & .StatusText & vbNewLine _ 
         & .GetAllResponseHeaders() & vbNewLine _ 
         & String$(40, "-") & vbNewLine _ 
         & .ResponseText 
    End With 
End Sub 

Private Sub Form_Load() 
    Set Req = New WinHttp.WinHttpRequest 
End Sub 
+0

これはうまくいきました。今はJson to Objectコンバーターを探しています。あなたは何か考えていますか? –

関連する問題