我是新來的WCF和休息服務,並試圖從我在網上找到的帖子做一些實現,但我仍然遇到一些問題。上傳文件與WCF REST服務
所以讓我解釋一下我的場景。
我有一個WPF應用程序,並在其中有一個反饋表單,客戶端可以填寫,附上一些截圖併發送。現在我的想法是將所有這些信息收集到一個XML文件中,我已經成功地完成了這個工作,然後將這個XML文件上傳到我的服務器上的特定文件夾中。
現在,據我瞭解,客戶端應用程序必須有一個POST方法將流發佈到服務器,然後我應該有一個服務器上的aspx頁來解碼我從POST獲得的流,以及制定我的XML文件,然後將其保存在文件夾中,如果我錯了,請糾正我。
在我已經實現了客戶端的代碼如下所示的樣子: -
public static void UploadFile()
{
serverPath = "http://localhost:3402/GetResponse.aspx";
filePath = "C:\\Testing\\UploadFile\\UploadFile\\asd_asd_Feedback.xml";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serverPath);
//request.MediaType = "text/xml";
request.ContentType = "text/xml";
//request.Method = "POST";
request.Method = "POST";
//request.ContentLength = contentLength;
//request.ContentType = "application/x-www-form-urlencoded";
using (FileStream fileStream = File.OpenRead(filePath))
using (Stream requestStream = request.GetRequestStream())
{
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
int byteCount = 0;
while ((byteCount = fileStream.Read(buffer, 0, bufferSize)) > 0)
{
requestStream.Write(buffer, 0, byteCount);
}
}
string result = String.Empty;
try
{
using (WebResponse response = request.GetResponse())
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
result = reader.ReadToEnd();
}
}
catch (Exception exc)
{
}
if (result == "OK")
{
}
else
{
// error...
}
}
現在,我怎麼通過requestStream到GetResponse.aspx頁面?這是正確的方法嗎?
感謝您的幫助和時間
嗨Krisragh,我試圖實現該教程,但由於我是WCF的新手,沒有管理。基本上創建了BlogPostRaw類,當我試圖將它添加到正在運行的服務(Service1)時,它拋出了一個錯誤。你能指導我如何設置這個例子嗎? – Johann 2011-04-18 08:20:59
嗨Krisragh,你可以給我一個這樣的代碼的樣本,因爲我仍然無法讓它正常工作 – Johann 2011-04-20 12:03:59
嗨Krisragh,我以另一種方式解決它。將服務託管在我的服務器上,並從代碼中調用它。感謝您的幫助 – Johann 2011-04-20 21:27:32