我正在尝试将Europass Webservice与我目前正在开发的网站进行集成。
此WebService允许您通过XML或JSON文件获取PDF或Word简历。
他们提供信息与他们的WS和样本XML (here)沟通,但你可以自己做,因为你尊重他们的模式。
为了确保xml可以使用远程上传服务,并在他们的网站上查看来自您的XML的简历。
我使用REST服务,更具体的XML PDF CV
MY析疑
我的问题是,我可以与Web服务comunicate,我也得到一个OK应答(大!),但是当下载PDF时,它全部是空白的。
我在这里错过了什么?你们能指导我吗?
要重现此操作,请复制下面的代码,并将此xml的内容添加到xmlcontent路径中的文件中。
CODE
//POST
string xmlContent = File.ReadAllText("D:\\Documents\\CV.xml");
string URL = "https://europass.cedefop.europa.eu/rest/v1/document/to/pdf-cv";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Method = "POST";
request.ContentType = "application/xml";
using (Stream webStream = request.GetRequestStream())
using (StreamWriter requestWriter = new StreamWriter(webStream, System.Text.Encoding.UTF8))
{
requestWriter.Write(xmlContent);
}
//RESPONSE
try
{
WebResponse webResponse = request.GetResponse();
using (Stream webStream = webResponse.GetResponseStream())
{
if (webStream != null)
{
using (StreamReader responseReader = new StreamReader(webStream))
{
string response = responseReader.ReadToEnd();
byte[] byteResponse = Encoding.UTF8.GetBytes (response);
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=test.pdf"); // Save file
Response.AddHeader("Content-Length", byteResponse.Length.ToString());
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.BinaryWrite(byteResponse);
Response.End();
}
}
}
什么是“响应”对象?没有看到它在任何地方定义。 – JunaidKirkire 2015-04-02 12:20:51
我想你在这里错过的是这个(来自网站):“在一个名为europass-xml的参数中。” 您正在传递一个有效的XML,但不在预期的容器中。这就是为什么他们使用名为europass-xml的textarea将xml直接发布到他们的网站。 – LocEngineer 2015-04-02 12:28:37
Hello @JunaidKirkire,响应对象与页面对象相关联。此对象允许您将HTTP响应数据发送到客户端,并包含有关该响应的信息。 [链接](https://msdn.microsoft.com/en-us/library/system.web.ui.page.response%28v=vs.110%29.aspx)。我正在使用ASP.NET 4.5 Framework – Nelssen 2015-04-02 12:33:05