У меня есть веб-API.Я вызываю этот API из моего приложения для Android, приложения для Windows, а также из устройства Fibocom G510 Hand Held Terminal.Все работало нормально, пока мой сервер не изменился.После миграции сервера я не получаю результаты.Вот мой код приложения vb.net для windows, который вызывает API.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim iRemoteUrl As String
Dim iDataPart As String
Dim iEncoding As ASCIIEncoding = New ASCIIEncoding
Dim iData As String
Dim iBytes() As Byte
Dim iHttpRequest As HttpWebRequest
Dim iStream As IO.Stream
Dim iResponse As WebResponse
Dim iReader As StreamReader
Dim iResponseFromServer As String
Try
iRemoteUrl = "http://demo.bmatestore.com/TAPI/Test.aspx"
iDataPart = "hadcaaz.asz|mambbkmrmaumjmamrvmwmbsmrkmcmwqmxnmkmzmmlmbmmmpmamwmbhcz|tashz|arasiarauz|tasz|astz|aaz|aswz|msfmambmeysmfz~aaaraxaaaraxz~auasasdgmkasasaxaayodlasjaslarauksgasasasyaskj"
iData = String.Format("DataPart={0}", iDataPart)
iBytes = iEncoding.GetBytes(iData)
iHttpRequest = CType(WebRequest.Create(iRemoteUrl), HttpWebRequest)
iHttpRequest.Method = "POST"
iHttpRequest.ContentType = "application/x-www-form-urlencoded"
iHttpRequest.ContentLength = iBytes.Length()
iStream = iHttpRequest.GetRequestStream
iStream.Write(iBytes, 0, iBytes.Length)
iStream.Close()
iResponse = iHttpRequest.GetResponse()
iStream = iResponse.GetResponseStream()
iReader = New StreamReader(iStream)
iResponseFromServer = iReader.ReadToEnd()
MsgBox(iResponseFromServer)
iReader.Close()
iStream.Close()
iResponse.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
В моем WebAPI у меня есть следующий код.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me. Load
Dim iData As String
Dim iResult As String
Try
iData = Request.Form("DataPart")
If iData = "" Then
iResult = "<message>0|0|0|2|Input data is not given</message>"
Else
iResult = ProcessTerminalAPI(iData, Server.MapPath("~/"), "Page")
End If
Response.Write(iResult)
Catch ex As Exception
End Try
End Sub
Я всегда получаю
<message>0|0|0|2|Input data is not given</message>
в качестве ответа.Я также понял, что если я изменю iRemoteUrl с http://demo.bmatestore.com/TAPI/Test.aspx на https://demo.bmatestore.com/TAPI/Test.aspx, он будет работать нормально.Но я хочу, чтобы это работало и в HTTP.Это связано с тем, что, как я упоминал ранее, этот API будет использоваться Fibocom G510 Hand Held Terminal, который не может подключиться, когда HTTPS используется в их коде.Он может подключаться при использовании HTTP, но, к сожалению, не дает должного результата.Пожалуйста, помогите, если кто-нибудь сталкивался с такой ситуацией.