谁即会.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

...全文
288 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jobs002 2006-06-06
  • 打赏
  • 举报
回复
关注..
鲁虾 2006-06-06
  • 打赏
  • 举报
回复
偶正在慢慢改着
cangwu_lee 2006-06-06
  • 打赏
  • 举报
回复
路过
zblaoshu1979 2006-06-06
  • 打赏
  • 举报
回复
UnAgain 2006-06-05
  • 打赏
  • 举报
回复
mark
鲁虾 2006-06-05
  • 打赏
  • 举报
回复
上面是我转成的C#,
.net 里面好多的同步,异步,不知道在java里面怎么实现
鲁虾 2006-06-05
  • 打赏
  • 举报
回复
using System.Net;
using System.IO;
using System.Text;
using System.Configuration;
using System.Web;
public abstract class HttpUtility
{
protected string m_ServiceURI;

public string ServiceURI {
get {
return m_ServiceURI;
}
set {
m_ServiceURI = Value;
}
}

public HttpUtility()
{
m_ServiceURI = "";
}
}
public class SyncHttpUtility : HttpUtility
{

public bool HttpQuery(string cmd, ref string ret)
{
bool bRet = false;
string sRet = "";
try {
Uri oUri = new Uri(this.m_ServiceURI);
HttpWebRequest oReq;
Stream oReqStream;
Stream oRespStream;
byte[] SendBytes;
HttpWebResponse oResp;
StreamReader sr;
int character;
byte[] temp = new byte[1];
oReq = ((HttpWebRequest)(WebRequest.Create(oUri)));
oReq.Method = "POST";
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.UTF8);
sRet = sr.ReadToEnd;
ret = sRet;
bRet = true;
} catch (Exception ex) {
bRet = false;
ret = ex.Message;
}
return bRet;
}
}
public class ASyncHttpUtility : HttpUtility
{
const int BUFFER_SIZE = 1024;
private Queue ResultQueue;
public bool IsBack;

public ASyncHttpUtility()
{
ResultQueue = new Queue();
IsBack = true;
}
private class RequestState
{
public string ID;
public HttpWebRequest Request;
public Stream ResponseStream;
public byte[] BufferRead = new byte[BUFFER_SIZE];
public StringBuilder RequestData = new StringBuilder("");
public Decoder StreamDecode = Encoding.UTF8.GetDecoder();

public RequestState()
{
Request = null;
ResponseStream = null;
ID = Now.ToLongTimeString;
}
}

private void Print(string text)
{
Debug.WriteLine(text);
}

private void AddResult(string content)
{
ResultQueue.Enqueue(content);
}

public string GetResult()
{
string sRet = "";
try {
if (ResultQueue.Count != 0) {
sRet = ResultQueue.Dequeue;
}
} catch (Exception ex) {
sRet = "";
}
return sRet;
}

public void AnsyncSendHttpWebRequest(string cid)
{
try {
IsBack = false;
Uri oUri = new Uri(this.m_ServiceURI + "?CID=" + cid);
HttpWebRequest oReq;
RequestState oReqState = new RequestState();
oReq = ((HttpWebRequest)(WebRequest.Create(oUri)));
oReqState.Request = oReq;
oReq.BeginGetResponse(new AsyncCallback(/* might be wrong, please check */ new EventHandler(HttpWebResponseCallback)), oReqState);
Print("Info : Send Request : " + oReqState.ID + " : " + Now.ToLongTimeString);
} catch (Exception ex) {
IsBack = true;
AddResult("Ex : Send Request : " + ex.ToString);
Print("Ex : Send Request : " + ex.ToString);
}
}

private void HttpWebResponseCallback(System.IAsyncResult ar)
{
try {
IsBack = false;
RequestState oReqState = ((RequestState)(ar.AsyncState));
HttpWebRequest oReq = oReqState.Request;
HttpWebResponse oResp = ((HttpWebResponse)(oReq.EndGetResponse(ar)));
Stream oRespStream = oResp.GetResponseStream();
oReqState.ResponseStream = oRespStream;
StreamReader reader = new StreamReader(oRespStream);
IAsyncResult arRead = oRespStream.BeginRead(oReqState.BufferRead, 0, BUFFER_SIZE, new AsyncCallback(/* might be wrong, please check */ new EventHandler(HttpWebReadCallBack)), oReqState);
Print("Info : Response Callback : " + oReqState.ID + " : " + Now.ToLongTimeString);
} catch (Exception ex) {
IsBack = true;
AddResult("Ex : Request Callback : " + Now.ToString + " : " + ex.ToString);
Print("Ex : Request Callback : " + Now.ToString + " : " + ex.ToString);
}
}

private void HttpWebReadCallBack(IAsyncResult asyncResult)
{
try {
IsBack = false;
RequestState oReqState = ((RequestState)(asyncResult.AsyncState));
Stream oRespStream = oReqState.ResponseStream;
Print("Info : Read Callback Start: " + oReqState.ID + " : " + Now.ToLongTimeString);
int read = oRespStream.EndRead(asyncResult);
if (read > 0) {
char[] charBuffer = new char[BUFFER_SIZE];
int len = oReqState.StreamDecode.GetChars(oReqState.BufferRead, 0, read, charBuffer, 0);
string str = new string(charBuffer, 0, len);
oReqState.RequestData.Append(Encoding.UTF8.GetString(oReqState.BufferRead, 0, read));
IAsyncResult ar = oRespStream.BeginRead(oReqState.BufferRead, 0, BUFFER_SIZE, new AsyncCallback(/* might be wrong, please check */ new EventHandler(HttpWebReadCallBack)), oReqState);
} else {
string strContent = "";
if (oReqState.RequestData.Length > 1) {
strContent = oReqState.RequestData.ToString();
Print("Info : Read Callback End: " + oReqState.ID + " : " + Now.ToLongTimeString + " : " + strContent);
} else {
Print("Info : Read Callback : " + "no data found");
}
oRespStream.Close();
AddResult(strContent);
}
} catch (Exception ex) {
AddResult("Ex : Read Callback : " + ex.ToString);
Print("Ex : Read Callback : " + ex.ToString);
}
IsBack = true;
}
}
jc15271149 2006-06-05
  • 打赏
  • 举报
回复
晕,VB的,不爱看
treeroot 2006-06-05
  • 打赏
  • 举报
回复
什么对不起来?
huangdeji 2006-06-05
  • 打赏
  • 举报
回复
好像不复杂么,不过我不会嘿嘿

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧