我正在嘗試將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