Problem sending web request

I use the following method to get something from a web service using HTTPWebRequest:

private void RetrieveSourceCode(Method method) { try { String url = "http://123.123.123.123:8080/"; CredentialCache myCache = new CredentialCache(); myCache.Add(new Uri(url), "Basic", new NetworkCredential("user", "pwd")); HttpWebRequest request =(HttpWebRequest)WebRequest.Create("http://abc.abc.ch:8080/famixParser/projects/argouml/org.argouml.uml.ui.behavior.common_behavior.ActionAddSendActionSignal.doIt(java.util.Collection)"); Console.WriteLine(request.RequestUri.ToString()); request.Credentials = myCache; request.Accept = "text/plain"; HttpWebResponse response; try { response = (HttpWebResponse)request.GetResponse(); } catch (Exception e) { Console.WriteLine("exception when sending query: "); throw e; } Stream resStream = response.GetResponseStream(); byte[] buf = new byte[8192]; StringBuilder sb = new StringBuilder(); string tempString = null; int count = 0; do { // fill the buffer with data count = resStream.Read(buf, 0, buf.Length); // make sure we read some data if (count != 0) { // translate from bytes to ASCII text tempString = Encoding.ASCII.GetString(buf, 0, count); // continue building the string sb.Append(tempString); } } while (count > 0); // any more data to read? String sourceCode = sb.ToString(); method.setSourceCode(sourceCode); Console.WriteLine(sourceCode); request.Abort(); } catch (Exception e) { Console.WriteLine(e.Message); } } 

Now I always get exception 401 - Access denied. I do not know why, because if I use the same URL in my web browser, it works. Maybe it's because of the brackets?

Please note: I changed the server address here, so it does not work here, but I had to do this for privacy reasons.

+4
source share
1 answer

The url cache and request url are different, I think this means that your username and password are not passed in the request.

 String url = "http://123.123.123.123:8080/"; CredentialCache myCache = new CredentialCache(); myCache.Add(new Uri(url), "Basic", new NetworkCredential("user", "pwd")); 

uses 123.123

 HttpWebRequest request =(HttpWebRequest)WebRequest.Create("http://abc.abc.ch:8080/famixParser/projects/argouml/org.argouml.uml.ui.behavior.common_behavior.ActionAddSendActionSignal.doIt(java.util.Collection)"); 

uses abc.ch

+2
source

Source: https://habr.com/ru/post/1341203/


All Articles