如何使用ASP.NET创建一个非常简单的Web代理?

时间:2009-08-14 23:56:00

标签: asp.net proxy ashx

我即将推出一个运作良好的网站,直到我发现以下打嗝:

我无法申请Yahoo!通过SSL管道。

所以需要SSL的页面现在缺少一部分功能,除非我找到解决方法;很明显,如果我在我的应用程序上使用SSL托管页面来请求Yahoo!管道给我。

我见过像http://www.iisproxy.net/license.html这样的解决方案,但对于我正在尝试做的事情似乎有点沉重。

我不能用一个简单的ASHX处理程序吗?还是比这更复杂?

谢谢,

迈克尔

2 个答案:

答案 0 :(得分:4)

谢谢John,如果它对其他人有帮助,这里是我在ASHX文件中使用的代码:

   public override void ProcessRequest(HttpContext context)
    {
        var strURL = context.Server.UrlDecode(context.Request["url"]);

        WebResponse objResponse = default(WebResponse);
        WebRequest objRequest = default(WebRequest);
        string result = null;
        objRequest = HttpWebRequest.Create(strURL);
        objResponse = objRequest.GetResponse();
        StreamReader sr = new StreamReader(objResponse.GetResponseStream());
        result = sr.ReadToEnd();
        //clean up StreamReader 
        sr.Close();

        //WRITE OUTPUT
        context.Response.ContentType = "application/json";
        context.Response.Write(result);
        context.Response.Flush();

    }

但是,我得到了一些额外的字符(而不是直接来自Yahoo! Pipes的版本),所以我必须在解析JSON之前删除它们。

答案 1 :(得分:1)

我想如果您要做的只是阅读请求的内容,您可以使用WebRequest& WebResponse类

以下是使用该

的一些细节

http://www.west-wind.com/presentations/dotnetWebRequest/dotnetWebRequest.htm