繁体   English   中英

将文本文件上传到Web服务

[英]Upload text file to web service

我有以下接受文本文件的方法,并且我试图将此文本文件上传到Web服务。 我使用用户名和密码。 但我得到一个例外:“远程服务器返回错误:(404)未找到。”。 如果我再次提供用户名和密码,则会遇到相同的异常。 我应该怎么做才能克服这个问题?

public static void UploadTextFileToWebService(string txtFile)
{
    WebClient webClient = new WebClient();
    string webAddress = null;
    try
    {
        webAddress = @"https://www.myweb.org/mywebwebservices/dataupload.asmx";
        webClient.Credentials = CredentialCache.DefaultCredentials;

        WebRequest serverRequest = WebRequest.Create(webAddress);
        WebResponse serverResponse;
        serverResponse = serverRequest.GetResponse();
        serverResponse.Close();              
        webClient.UploadFile(webAddress + txtFile, "PUT", txtFile);
        webClient.Dispose();
        webClient = null;
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

您的网络服务似乎是asmx网络服务,因此我怀疑您可以按照自己的方式进行上传。

您需要使用正确的SoapMessage格式来发送正在发送的任何请求。

由于使用的是C#/。Net,最简单的方法是添加服务引用,该服务引用将创建代理以使您能够通过对象模型发送请求。

我不确定您是否已在这里找到正确的方法-由于您已经以字符串形式读取文件,因此您只需将字符串的内容发送到直接接受文本文件内容的网络方法即可。

因此,在您的服务中,您应该拥有(类似)的东西:

[WebMethod()]
public void AcceptFile(string content)
{
    ...
}

然后,您调用该方法,并将txtFile变量作为参数传递。

parm 1在此行中是错误的:

webClient.UploadFile(webAddress + txtFile, "PUT", txtFile);

可能应该是

webClient.UploadFile(webAddress + @"/" + txtFile, "PUT", txtFile);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM