远程服务器返回错误:(407)需要代理身份验证
问题描述:
我正在使用以下代码从使用itextsharp dll的网页生成pdf。远程服务器返回错误:(407)需要代理身份验证
但我得到foloowing错误。 远程服务器返回错误:(407)需要代理验证。
我的代码:
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
this.Page.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
答
我有同样的问题,我从DOCTYPE HTML标记在我的HTML文件中删除URL解决它!
即,我代替:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
与
<!DOCTYPE html>
使这一变化的HtmlParser.Parse命令运行正常后产生的.PDF不给我(407)代理身份验证错误。
你使用代理服务器进入互联网,那东西需要某种认证? –
你的sw.ToString()是否包含不在本地服务器上托管的图像(例如)?过时的HTMLWorker在幕后做了很多工作。 – VahidN
请删除itextsharp作为标记。这不是一个itextsharp问题。这是关于从您的机器上获取HTML和所有从该HTML引用的资源。 –