perumal316
perumal316

Reputation: 1169

URI Update Request

From my C# console application, I want to issue an Uri update request. Like the following:

http://username:[email protected]/nic/update?hostname=mytest.testdomain.com&myip=1.2.3.4 

I have tried the following:

string url = "http://username:[email protected]/nic/update? hostname=mytest.testdomain.com&myip=1.2.3.4";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = 5000;

But, I am getting, Invalid URI: The format of the URI could not be determined. error.

Any idea, where I went wrong? I type the full url as shown above into a web browser and it works as expected but through the C# application, it throws an exception.

Is there any other way to implement this?

Upvotes: 1

Views: 810

Answers (3)

Vamsi Mohan Jayanti
Vamsi Mohan Jayanti

Reputation: 666

Just have look at this web page. Is this what you are referring to? http://www.no-ip.com/integrate/request/

I think you need to use the url as http://dynupdate.no-ip.com/nic/update

and then send the credentials as mentioned by ChrisBint. And you need to set the preference to base64 ...if there is a provision for that + some headers like UserAgent as mentioned in the article.

Upvotes: 2

Muzaffer
Muzaffer

Reputation: 306

Encode the URL argument, check the below example

string url = "http://www.stackoverflow.com?question=" + HttpUtility.UrlEncode("a sentence with spaces");

WebRequest r = WebRequest.Create(url);

Upvotes: 0

Kinexus
Kinexus

Reputation: 12904

You need to create and add some credentials to the request and then access the URI without passing in the username/password.

For more information : How to: Request Data Using the WebRequest Class (Specifically the section regarding credentials)

For example;

var uri = new Uri("http://somesite.com/something");
var request = WebRequest.Create(uri) as HttpWebRequest;
request.Credentials = new NetworkCredential("myUserName","myPassword");
request.PreAuthenticate = true;

Upvotes: 4

Related Questions