简体   繁体   English

服务器返回错误:找不到404

[英]The server returned an error: 404 not found

I'm trying to get xml-data from an api like this: 我正在尝试从这样的api获取xml数据:

try
{
    var url = "http://myapi.dev.io/xml/" + peNo;

    CookieContainer myContainer = new CookieContainer();
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.Credentials = new NetworkCredential("restuser", "rest2user");
    request.CookieContainer = myContainer;
    request.PreAuthenticate = true;

    using (var response = request.GetResponse() as HttpWebResponse)
    {
        using (var reader = new StreamReader(response.GetResponseStream()))
        {
            var data = new AssetXmlDTO() { AssetXml = reader.ReadToEnd() };
            return data;
        }
    }
}
catch (WebException ex)
{
    if (ex.Status == WebExceptionStatus.ProtocolError)
    {
        if (((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.NotFound)
        {
            // handle the 404 here
            return null;
        }
}

But everytime I run the code, I get an 404... 但是每次我运行代码时,我都会得到一个404 ...

However, If i copy the url and navigates to it via the browser, it works. 但是,如果我复制该URL并通过浏览器导航到该URL,它将起作用。 I get the following xml-result when doing so: 这样做时,我得到以下xml结果:

<result>
service/assets/asset/id/9301246/version/7/element/actual/0/storage/preview/file/09078960.jpg
</result>

So why do I get an 404 in my code when actually does exists? 那么,为什么当我的代码确实存在时却在我的代码中得到404? Any idea? 任何想法?

May be you should add some attributs to your HttpWebRequest like : 可能是您应该向HttpWebRequest添加一些属性,例如:

request.Method = "POST"; 
string _yourPostData = peNo;
byte[] byteArray = Encoding.UTF8.GetBytes(_yourPostData );
request.ContentType = "application/xml";
request.ContentLength = byteArray.Length;  
Stream _dataStream = request.GetRequestStream(); 
_dataStream.Write(byteArray, 0, byteArray.Length);
_dataStream.Close();
// Get the response.  
WebResponse response = request.GetResponse();

暂无
暂无

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

相关问题 远程服务器返回错误:(404)找不到-HttpWebResponse - The remote server returned an error: (404) Not Found - HttpWebResponse HttpWebRequest引发“ 404远程服务器返回错误:(404)未找到。” - HttpWebRequest throws “The remote server returned an error: (404) Not Found.” for 404 远程服务器返回错误:(404)找不到。 在GetResponse()中 - The remote server returned an error: (404) Not Found. In GetResponse() Picasa API返回“远程服务器返回错误:(404)Not Found。” - Picasa API returns “The remote server returned an error: (404) Not Found.” WebDriverManager - &#39;远程服务器返回错误:(404)未找到。&#39; - WebDriverManager - 'The remote server returned an error: (404) Not Found.' BrowserMob 代理 - 远程服务器返回错误:(404) 未找到 - BrowserMob Proxy - The remote server returned an error: (404) Not Found 远程服务器返回一个错误:(404) Not Found error for API calls after server publish - The remote server returned an error: (404) Not Found error for API calls after server publish 远程服务器返回错误:(404)找不到。 使用Facebook图形API时 - The remote server returned an error: (404) Not Found. when using facebook graph api 删除Azure云中的Blob时远程服务器返回错误:(404)找不到 - When Delete the blob in azure cloud The remote server returned an error: (404) Not Found 远程服务器返回错误:(404) 未找到。 谷歌在 C# 中的实现 - The remote server returned an error: (404) Not Found. google implentation in c#
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM