谁即会.net和java,帮我改改三个类,改成java的,有好多对不起来,
鲁虾 2006-06-05 04:35:17 Imports System.Net
Imports System.IO
Imports System.Text
Imports System.Configuration
Imports System.Web
Public MustInherit Class HttpUtility
Protected m_ServiceURI As String
Public Property ServiceURI() As String
Get
Return m_ServiceURI
End Get
Set(ByVal Value As String)
m_ServiceURI = Value
End Set
End Property
Public Sub New()
m_ServiceURI = ""
End Sub
End Class
Public Class SyncHttpUtility
Inherits HttpUtility
Public Function HttpQuery(ByVal cmd As String, ByRef ret As String) As Boolean
Dim bRet As Boolean = False
Dim sRet As String = ""
Try
Dim oUri As Uri = New Uri(Me.m_ServiceURI)
Dim oReq As HttpWebRequest
Dim oReqStream, oRespStream As Stream
Dim SendBytes() As Byte
Dim oResp As HttpWebResponse
Dim sr As StreamReader
Dim character As Integer
Dim temp(1) As Byte
oReq = CType(WebRequest.Create(oUri), HttpWebRequest)
oReq.Method = "POST"
'SendBytes = Encoding.GetEncoding(936).GetBytes(cmd)
cmd = System.Web.HttpUtility.UrlEncode(cmd)
SendBytes = Encoding.UTF8.GetBytes(cmd)
oReq.ContentLength = SendBytes.Length
oReqStream = oReq.GetRequestStream()
oReqStream.Write(SendBytes, 0, SendBytes.Length)
oReq.Timeout = 1000 * 30
oReqStream.Close()
oResp = oReq.GetResponse()
oRespStream = oResp.GetResponseStream()
'sr = New StreamReader(oRespStream, Encoding.GetEncoding(936))
sr = New StreamReader(oRespStream, Encoding.UTF8)
sRet = sr.ReadToEnd
ret = sRet
bRet = True
Catch ex As Exception
bRet = False
ret = ex.Message
End Try
Return bRet
End Function
End Class
Public Class ASyncHttpUtility
Inherits HttpUtility
Const BUFFER_SIZE As Integer = 1024
Private ResultQueue As Queue
Public IsBack As Boolean
'New
Public Sub New()
ResultQueue = New Queue
IsBack = True
End Sub
'Callback State Class
Private Class RequestState
Public ID As String
Public Request As HttpWebRequest
Public ResponseStream As Stream
Public BufferRead(BUFFER_SIZE) As Byte
Public RequestData As StringBuilder = New StringBuilder("")
'Public StreamDecode As Decoder = Encoding.GetEncoding(936).GetDecoder()
Public StreamDecode As Decoder = Encoding.UTF8.GetDecoder()
Public Sub New()
Request = Nothing
ResponseStream = Nothing
ID = Now.ToLongTimeString
End Sub
End Class
Private Sub Print(ByVal text As String)
Debug.WriteLine(text)
End Sub
Private Sub AddResult(ByVal content As String)
ResultQueue.Enqueue(content)
End Sub
Public Function GetResult() As String
Dim sRet As String = ""
Try
If ResultQueue.Count <> 0 Then
sRet = ResultQueue.Dequeue
End If
Catch ex As Exception
'How?
sRet = ""
End Try
Return sRet
End Function
'Send Request
Public Sub AnsyncSendHttpWebRequest(ByVal cid As String)
Try
IsBack = False
Dim oUri As Uri = New Uri(Me.m_ServiceURI & "?CID=" & cid)
Dim oReq As HttpWebRequest
Dim oReqState As New RequestState
oReq = CType(WebRequest.Create(oUri), HttpWebRequest)
oReqState.Request = oReq
oReq.BeginGetResponse(New AsyncCallback(AddressOf HttpWebResponseCallback), oReqState)
Print("Info : Send Request : " & oReqState.ID & " : " & Now.ToLongTimeString)
Catch ex As Exception
IsBack = True
AddResult("Ex : Send Request : " & ex.ToString)
Print("Ex : Send Request : " & ex.ToString)
End Try
End Sub
'Process Request Callback
Private Sub HttpWebResponseCallback(ByVal ar As System.IAsyncResult)
Try
IsBack = False
Dim oReqState As RequestState = CType(ar.AsyncState, RequestState)
Dim oReq As HttpWebRequest = oReqState.Request
Dim oResp As HttpWebResponse = CType(oReq.EndGetResponse(ar), HttpWebResponse)
Dim oRespStream As Stream = oResp.GetResponseStream()
oReqState.ResponseStream = oRespStream
Dim reader As StreamReader = New StreamReader(oRespStream)
'Send Read
Dim arRead As IAsyncResult = _
oRespStream.BeginRead(oReqState.BufferRead, 0, BUFFER_SIZE, _
New AsyncCallback(AddressOf HttpWebReadCallBack), oReqState)
Print("Info : Response Callback : " & oReqState.ID & " : " & Now.ToLongTimeString)
Catch ex As Exception
IsBack = True
AddResult("Ex : Request Callback : " & Now.ToString & " : " & ex.ToString)
Print("Ex : Request Callback : " & Now.ToString & " : " & ex.ToString)
End Try
End Sub
'Process Read Callback
Private Sub HttpWebReadCallBack(ByVal asyncResult As IAsyncResult)
Try
IsBack = False
Dim oReqState As RequestState = CType(asyncResult.AsyncState, RequestState)
Dim oRespStream As Stream = oReqState.ResponseStream
Print("Info : Read Callback Start: " & oReqState.ID & " : " & Now.ToLongTimeString)
'Still has data in stream
Dim read As Integer = oRespStream.EndRead(asyncResult)
If read > 0 Then
'Keep
Dim charBuffer(BUFFER_SIZE) As Char
Dim len As Integer = _
oReqState.StreamDecode.GetChars(oReqState.BufferRead, 0, read, charBuffer, 0)
Dim str As String = New String(charBuffer, 0, len)
'oReqState.RequestData.Append(Encoding.GetEncoding(936).GetString(oReqState.BufferRead, 0, read))
oReqState.RequestData.Append(Encoding.UTF8.GetString(oReqState.BufferRead, 0, read))
' Continue reading until returns –1.0.
Dim ar As IAsyncResult = _
oRespStream.BeginRead(oReqState.BufferRead, 0, BUFFER_SIZE, _
New AsyncCallback(AddressOf HttpWebReadCallBack), oReqState)
Else
Dim strContent As String = ""
'End reading or Has no data
If oReqState.RequestData.Length > 1 Then
strContent = oReqState.RequestData.ToString()
'print("Info : Read Callback : " & strContent)
Print("Info : Read Callback End: " & oReqState.ID & " : " & Now.ToLongTimeString & " : " & strContent)
Else
Print("Info : Read Callback : " & "no data found")
End If
' Close the response stream.
oRespStream.Close()
AddResult(strContent)
End If
Catch ex As Exception
AddResult("Ex : Read Callback : " & ex.ToString)
Print("Ex : Read Callback : " & ex.ToString)
End Try
IsBack = True
End Sub
End Class