0
내 프록시 사용 : "Proxy.ashx URL ="프록시 호스트 C#을 문제
코드 :
<%@ WebHandler Language="C#" Class="Proxy" %>
public class Proxy : IHttpHandler {
public void ProcessRequest (HttpContext context) {
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(context.Request["url"]);
request.UserAgent = context.Request.UserAgent;
request.ContentType = context.Request.ContentType;
request.Method = context.Request.HttpMethod;
byte[] trans = new byte[1024];
int offset = 0;
int offcnt = 0;
if (request.Method.ToUpper() == "POST")
{
Stream nstream = request.GetRequestStream();
while (offset < context.Request.ContentLength)
{
offcnt = context.Request.InputStream.Read(trans, offset, 1024);
if (offcnt > 0)
{
nstream.Write(trans, 0, offcnt);
offset += offcnt;
}
}
nstream.Close();
}
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
context.Response.ContentType = response.ContentType;
using (Stream receiveStream = response.GetResponseStream())
{
offset = 0;
offcnt = receiveStream.Read(trans, offset, 1024);
while (offcnt>0)
{
context.Response.OutputStream.Write(trans, 0, offcnt);
offset += offcnt;
if (offcnt >= 0)
{
try
{
offcnt = receiveStream.Read(trans, offset, 1024);
}
catch (Exception)
{
break;
}
}
else
break;
}
}
context.Response.OutputStream.Close();
context.Response.Flush();
response.Close();
}
}
public bool IsReusable {
get {
return false;
}
}
}
난 항상 (Proxy.ashx 결과로 빈 페이지를 얻을? url = http://www.google.com) ... 어떤 실수를했는지 알 수 있습니까?
고마워요! "나머지는 배열을 읽을 때의 오프셋이 0이되어야합니다. 왜냐하면 오프셋은 스트림이 아니라 배열의 오프셋이기 때문입니다." 문제를 해결하기 위해 어떤 방법을 제안합니까? – Paul
감사합니다. 그게 잘됐다! – Paul