に移行する人は、そのvb6コードをC#またはVisual Basic.netに変換する方法を教えてください。私はSystem.Net.WebRequest()
クラスを使用しようとしましたが、成功しませんでした(私はすべてのツリーが別の例外をスローするので、私のC#コードを追加すると役立たないでしょう)。WinHttp.WinHttpRequestを使用する短いvb6コードをc#またはvb.net
このコードはうまく動作します(私はvbaエディタでテストしました)。
明確化:私はいくつかのMY仕事をすることを期待いけない私はちょうどそれが十分であると私はから一人でそれを処理することができるようになります、System.Net.WebRequest()
クラスmedhodsにGetHTTPResponse()
関数の最初の11行のequivilent方法を理解する必要がありますその点。
ご利用いただきありがとうございます。
Function ReadToken(s)
Dim X()
ReDim X(0)
s = Replace(s, Chr(34), "")
bRes = False
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.IgnoreCase = True
RegExp.Pattern = "token\:(.+?),type\:(.+?),expires_in\:(.+?)"
bRes = RegExp.test(s)
If bRes Then
Set oMatches = RegExp.Execute(s)
ReDim X(2)
X(0) = oMatches(0).subMatches(0)
X(1) = oMatches(0).subMatches(1)
X(2) = oMatches(0).subMatches(2)
End If
ReadToken = X
End Function
Function GetHTTPResponse(ByVal Id As Long) As String
' On Error Resume Next
Const username = "username"
Const password = "password"
sURL = "https://api.exoclick.com/v1/login"
Set oXMLHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
With oXMLHTTP
.Open "Post", sURL, False
.setRequestHeader "Content-Type", "application/json"
params = "{""username"":" & Chr(34) & username & Chr(34) & ", ""password"":" & _
Chr(34) & password & Chr(34) & "}"
.send params
If .Status = 200 Then
Response = .ResponseText
Token = ReadToken(Response)
Authorization = "{""type"":" & Chr(34) & Token(1) & _
Chr(34) & ",""token"":" & Chr(34) & Token(0) & Chr(34) & "}"
.abort
sURL = "https://api.exoclick.com/v1/statistics/advertiser/date"
params = "{""campaignid"":" & Id & "}"
.Open "GET", sURL, False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "Authorization", Authorization
.send params
GetHTTPResponse = .ResponseText
End If
End With
Set oXMLHTTP = Nothing
End Function
あなたはVB6のタイトルに言及していますが、質問にはVBScriptがあります。どちらですか? –
申し訳ありませんが、パラメータに角括弧を追加し、 'Imports System.Runtime.InteropServices'と' Imports Microsoft.Win32'ファイルの先頭に追加する限り、vb6 – jonathana
VB6はVB.NETに一般にペースト可能です。 EG 'Response = .ResponseText'は' Response = .ResponseText() 'になります。 –