Web客户端上传将发生在哪里

本文关键字:在哪里 客户端 Web | 更新日期: 2023-09-27 18:04:48

我写了一个简单的代码。我不明白这里发生了什么。请给我解释一下,我在哪里可以找到一个给定的上传文件

WebClient client = new WebClient();
string uri = "http://localhost:8080/sample.txt";
client.Credentials = CredentialCache.DefaultCredentials;
string Filename = "F:'sample_test.txt/docx;
byte[] arrReturn = client.UploadFile(uri, "POST", Filename);

Web客户端上传将发生在哪里

首先,这显然不是你的真正的代码,因为这一行不能编译:

string Filename = "F:'sample_test.txt/docx/"; 

's不是一个有效的转义序列。然而,假设您有工作代码,您的应用程序将使用文件的内容向给定的URI(在本例中为http://localhost:8080/sample.txt)发出HTTP POST请求。完全由服务器决定它如何处理请求。

  • 它可以将文件保存在磁盘上的某个地方
  • 可以保存到数据库
  • 它可以将它发布到另一个web服务
  • 它可以完全忽略内容,不保存在任何地方

上传文件的行为并不能保证什么——你只是在请求一些数据。

现在,如果你的URI 真的涉及localhost,那么它将文件上传到你所在的计算机上-所以你应该控制在端口8080上侦听的web服务器将如何处理上传请求。同样,我们不能告诉你它会做什么——这取决于服务器。

可能是你的文件名:

string Filename = "F:'sample_test.txt/docx/";

将正斜杠改为黑斜杠,并给出一个实际的文件名,而不仅仅是路径:

string Filename = @"F:'sample_test.txt'docx'";

string Filename = "F:''sample_test.txt''docx''"; 

实际上,文件名是没有多大意义的-我不确定UploadFile将如何处理它,即使斜杠走正确的方式,因为你似乎有一个文件名后面跟着一个目录…?实际上不应该是:

string Filename = @"F:'docx'sample_test.txt"?

可以是URI——你指定了文件名和URI。

您查看了URI中指定的位置吗?http://localhost: 8080/?

如果不存在,那么尝试将代码包装在try-catch块中,以查看是否抛出任何异常:

try
{
     byte[] arrReturn = client.UploadFile(uri, "POST", Filename);
}
catch (Exception ex)
{
     // do something here - in the debugger, you can inspect ex.Message to see the exception
}