我是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页面?这是正确的方法吗?
感谢您的帮助和时间
答案 0 :(得分:0)
我不明白你的代码试图做什么。您是否考虑过实际使用WCF客户端和WCF服务来进行实际上传?
有一个样本可以做到这一点! This blog post details如何在服务端使用编程模型,this follow-up blog post详细说明了如何在客户端使用它。我已经看到它在文件上传和图像传输方案中使用了很多,所以它也可能对你的情况有所帮助!这些博客文章中的示例是文件上载文件。
希望这有帮助!