0
以下のAPI Create
にアクセスしようとしています。 webRequest1.GetRequestStream()
を呼び出そうとしたとき、私は次のエラーを取得しています:HTTPS - トランスポート接続からデータを読み取ることができません:既存の接続がリモートホストによって強制的に閉じられました
トランスポート接続からデータを読み取ることができません:
:既存の接続はリモートホストによって強制的にPublic Function OfferAffirmRequestURL(ByVal strHost As String, ByVal strClientId As String, ByVal strSecretKey As String, ByVal strApiPath As String) As String Dim strOfferCommand As String = "" Dim strHROBUrl As String = "" Dim strHROBRequestURL As String = "https://" & strHost Dim strErrorMessage As String Dim strXMLString As String = "<?xml version=""1.0"" encoding=""UTF-8""?><Record><ReferenceID>44</ReferenceID><Template>New Offer</Template><RecordData><FormField><candidate_first_name>RBFName16</candidate_first_name><candidate_last_name>LName160</candidate_last_name><candidate_email>[email protected]</candidate_email><candidate_mobile_no>0411111111</candidate_mobile_no><start_date>2014-07-16T00:00:00</start_date></FormField></RecordData></Record>" Dim strTimeStamp As String = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ") Dim data As String = "clientId" & strClientId & "payload" & strXMLString & "timestamp" & strTimeStamp Dim key As Byte() = StringToByteArray(strSecretKey) Dim encrypt As HMACSHA1 = New HMACSHA1(key) Dim dataBytes As Byte() = Encoding.ASCII.GetBytes(data) Dim signatureBytes As Byte() = encrypt.ComputeHash(dataBytes) Dim strSignature As String = Convert.ToBase64String(signatureBytes) Dim strSignatureParam As String = Uri.EscapeDataString(strSignature) strHROBUrl = strHROBRequestURL & strApiPath & "?clientId=" & strClientId & "&payload=" & strXMLString & "×tamp=" & strTimeStamp & "&signature=" & strSignatureParam Dim byteArray As Byte() = Encoding.UTF8.GetBytes(strXMLString) ServicePointManager.Expect100Continue = False Dim webRequest1 As WebRequest = WebRequest.Create(strHROBUrl) 'Dim webRequest1 As HttpWebRequest = DirectCast(WebRequest.Create(strHROBUrl), HttpWebRequest) webRequest1.Method = "POST" webRequest1.ContentType = "text/xml" webRequest1.ContentLength = byteArray.Length webRequest1.Credentials = CredentialCache.DefaultCredentials Try Dim requestWriter As IO.Stream = webRequest1.GetRequestStream() requestWriter.Write(byteArray, 0, byteArray.Length) requestWriter.Close() Dim response As WebResponse response = webRequest1.GetResponse() Dim responseReader As New IO.StreamReader(response.GetResponseStream()) Dim responseData As String = responseReader.ReadToEnd() strErrorMessage = responseData responseReader.Close() webRequest1.GetResponse().Close() Catch ex As WebException strErrorMessage = ex.InnerException.Message End Try Return strErrorMessage End Function
コードを閉鎖しました
上記のメソッドは、以下のボタンClick
のメソッドで呼び出されます。
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim strCreateOfferURL As String = ""
strCreateOfferURL = OfferAffirmRequestURL("abc.xyz.com", "xyz", "4d8b7jpojpodf031e", "/api/record/createRecord.shtml")
Label1.Text = strCreateOfferURL
End Sub
Debug.Print URL ...正しいですか?サイトには、信頼できるCAの有効なSSL証明書またはマシンにインストールする必要のある自己署名証明書がありますか? – MrGadget
URLにXMLを入れたくないのではないでしょうか? ''&payload = "&strXMLString' – MrGadget
こんにちはMrGadgetさん、あなたの返信にとても感謝しています。下のリンクは私の問題を解決しました。 – razor