Solved

C# WebResponse Error 414

Posted on 2008-06-09
9
2,019 Views
Last Modified: 2010-04-21
My application sends xml file with WebRequest and WebResponse. With GetResponse I ger Exception
System.Net.WebException: The remote server returned an error: (414) Request-URI Too Long

File is 22k and short file works OK.
I know with java following works:
  var xmlServerHttp = new ActiveXObject("Msxml2.ServerXMLHTTP.3.0");
...
 xmlServerHttp.setOption(2, "13056"); // SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS

Has somebody ideas with .NET?

0
Comment
Question by:ziiffi
  • 5
  • 4
9 Comments
 
LVL 18

Expert Comment

by:ChetOS82
ID: 21745798
It looks like you are trying to send the xml file as part of the URI (GET method).  Try using POST method instead, it is only slightly more complicated.
0
 

Author Comment

by:ziiffi
ID: 21748697

This is the exact way I use. Response is needed to check the result.

WebRequest wr;
WebResponse res;

wr = WebRequest.Create(url);
wr.Proxy = GlobalProxySelection.GetEmptyWebProxy();
wr.Method = "POST";
wr.ContentType = "multipart/form-data";

bytes = System.Text.Encoding.GetEncoding("iso-8859-1") .GetBytes (url);
wr.ContentLength = bytes.Length;
Stream os = wr.GetRequestStream();
os.Write(bytes, 0, bytes.Length);
os.Close();

res = wr.GetResponse();
Stream rs = res.GetResponseStream();
StreamReader rr = new StreamReader(rs, System.Text.Encoding.GetEncoding("iso-8859-1"));
result = rr.ReadToEnd();
0
 
LVL 18

Expert Comment

by:ChetOS82
ID: 21750379
"multipart/form-data" is an encoding type, not a content type.  You should use "application/x-www-form-urlencoded" for the content type.
0
 

Author Comment

by:ziiffi
ID: 21753440
Same error result with this.
0
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 
LVL 18

Expert Comment

by:ChetOS82
ID: 21753469
Ok, after closer examination, I see the "url" variable, and then you try to send the "url" variable as the content of the POST.  Does "url" contain the address or the content to be sent?  What is the length in "bytes.Length"?
0
 

Author Comment

by:ziiffi
ID: 21754032
Yes, it contains, and the length of bytes is 22436. This works with shorter messages

This message anf longer works with java and there is used Ignore error option.
0
 
LVL 18

Accepted Solution

by:
ChetOS82 earned 250 total points
ID: 21754126
Ok, well you cannot have a URI that is that long.  That isn't how POST method works anyway.  You need to set the URL to just the URL, and have another variable which contains the actual data.  If you prefix the data with something like "data=", then you can retrieve the form data using Request.Form("data").
0
 

Author Comment

by:ziiffi
ID: 21754809
OK. This is the point: separate url and data. Seems much better, Thanks
0
 

Author Closing Comment

by:ziiffi
ID: 31465507
No more errors, I will finalize this tomorrow because remote database is off, However I got remote info message
0

Featured Post

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now