【发布时间】:2013-12-09 10:28:34
【问题描述】:
我在下面的代码片段中遇到代理身份验证问题。
file = [FILEPATH]
htmlData = [HTML CONTENTS]
System.IO.StringReader objReader = default(System.IO.StringReader);
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = default(HTMLWorker);
objReader = new System.IO.StringReader(htmlData);
FileStream fsTest = new FileStream(file, FileMode.Create, FileAccess.ReadWrite);
htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, fsTest);
pdfDoc.Open();
htmlparser.Parse(objReader);
pdfDoc.Close();
我不确定这是 iTextSharp 问题还是我需要在代码级别进行一些身份验证? 请提出建议。
详细错误:
The remote server returned an error: (407) Proxy Authentication Required. || System.Net.WebException: The remote server returned an error: (407) Proxy Authentication Required. at System.Net.HttpWebRequest.GetResponse() at iTextSharp.text.Image.GetInstance(Uri url) at iTextSharp.text.html.simpleparser.HTMLWorker.StartElement(String tag, Dictionary`2 h) at iTextSharp.text.xml.simpleparser.SimpleXMLParser.Go(TextReader reader) at AppWeb.AssetActions.GeneratePDFFromHTML(String htmlData, String file) || at System.Net.HttpWebRequest.GetResponse() at iTextSharp.text.Image.GetInstance(Uri url) at iTextSharp.text.html.simpleparser.HTMLWorker.StartElement(String tag, Dictionary`2 h) at iTextSharp.text.xml.simpleparser.SimpleXMLParser.Go(TextReader reader) at.
【问题讨论】:
-
检查您的 [FILEPATH] 变量。是否是远程位置(例如“\\SERVER1\PATH1”)可能需要身份验证?
-
是的,我检查了它而不是远程路径。它是 Server.Mappath(...)
-
但是无论值是什么,您是否确定它是指本地路径(如 C:\ 或 D:\)?如果没有,则让它将值写入响应流并检查它。
-
在这种情况下,您应该检查您的 html 数据。我的感觉是,当您说 htmlparser.Parse() 时,html 数据可能包含一些外部链接并被调用
-
所以,获取您的 html 数据,找到这些链接并尝试在您的浏览器中手动访问其中的一些。
标签: c# authentication proxy itextsharp html-to-pdf