Tag: httpwebrequest

无效的URI:当url具有多个冒号时指定的端口无效

我正在使用dnsdynamic.org指向我家中托管的个人网站。 我家的ip会经常每月更换一次。 dnsdynamic.org提供了一个更新ip的web方法调用。 https://username:password@www.dnsdynamic.org/api/?hostname=techno.ns360.info&myip=127.0.0.1 当我通过浏览器调用它时,它完美无缺。 当我尝试通过c#代码调用它时,它会抛出以下exception。 Invalid URI: Invalid port specified. at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind) at System.Net.WebRequest.Create(String requestUriString) 由于url中有一个冒号,它看起来像system.uri尝试将我的密码解析为整数。 我尝试在.org之后添加一个端口 https://username:password@www.dnsdynamic.org:443 没有运气。 有人可以指点我如何解决这个错误。 我在创建uri时尝试了不要逃避和逃避选项,仍然无法正常工作。 var ri = new Uri(“https://username:password@www.dnsdynamic.org/api/?hostname=techno.ns360.info&myip=127.0.0.1”,true); 编辑:看起来用户名导致问题。 我的用户名是我的电子邮件地址 我的电子邮件地址以* .com结尾。 所以uri试图解析我的密码。 仍未找到解决此问题的解决方案。 我无法更改我的用户名,因为dnsdyanmic.org使用电子邮件地址作为用户名。

如何获取HttpWebRequest的本地端口号?

我正在异步地使用HttpWebRequest进行长时间运行的请求。 请求正在运行时,我希望能够获取请求的本地端口(即客户端上的端口,而不是服务器端口)。 我怎么做? 我查看了HttpWebRequest.ServicePoint.BindIPEndPointDelegate,但这似乎只允许调用者指定本地addy / port。 理想情况下,我想允许HttpWebRequest正常选择其本地端口,然后询问它选择了什么。

401使用HttpWebRequest进行POST时(是的,我使用了Credentials)

我正在使用HttpWebRequest来下载XML,并将数据POST回“WebService”并在POST上获得401。 在创建请求时,我添加了凭据,现在尝试了凭据缓存并将PreAutenticate设置为True,仍然获得401! 🙁 观察路由器上的HTTP流量我设置get make一个未经身份validation的GET请求..它命中401然后进行经过身份validation的GET并被允许通过。 当我观看POST时,我看到它点击了401 ……它甚至没有尝试经过身份validation的POST。 这只出现在手机上(WinMobile 6.1上的compact-framework 3.5和2.0)。 相同的.exe在任何台式机上都能完美运行。 我错过了什么? 请帮忙!

使用C#创建SSL WebRequest

我正在编写一个代码来读取页面并以编程方式下载内容,但它与浏览器的工作方式不同。 请注意,我也使用cookie字符串。 我的代码是: string strUrl = “http:” + “//mgac.webex.” + “com”; string cookies_str = “vSeg=post_attendee; s_nr=1321305381566-New; s_lv=1321305381566; s_vnum=1322686800567%26vn%3D1; galaxyb_wl=R2355168776; JSESSIONID=Qlq1TR7Hf09KTsGHr4vv2GnTFF0NGRlLmGyYmMvzY5M29pbZ8yNp!31020270; DetectionBrowserStatus=3|1|32|1|4|2; CK_LanguageID_503319=1; CK_TimeZone_503319=4; CK_RegionID_503319=2; vSeg=post_attendee; s_nr=1321305381566-New; s_lv=1321305381566; s_vnum=1322686800567%26vn%3D1; galaxyb_wl=R2355168776; JSESSIONID=Qlq1TR7Hf09KTsGHr4vv2GnTFF0NGRlLmGyYmMvzY5M29pbZ8yNp!31020270;”; string other_saved_cookies = “screenWidth=1280; CK_CDNHostStatus=akamaicdn.webex.com|1322367753273|1”; string s; using (WebClient client = new WebClient()) { client.UseDefaultCredentials = true; client.Headers.Add(HttpRequestHeader.Cookie, cookies_str); s = client.DownloadString(strUrl); } 我得到了这个答案:“无法找到页面……” 当我用Fiddler扫描请求时,我的浏览器收到了相同的答案,之后他向同一主机发出了使用SSL的新请求。 […]

通过SSL的HttpWebRequest?

我之前使用HttpWebRequests将数据发布到HTTPS网站,而且我从来没有像常规的HTTP Post那样做任何不同的事情。 有没有人知道是否有任何技巧,我错过了确保这是正确完成的?

如何通过TcpClient获取页面?

我正在尝试通过TCP流向页面发送GET请求。 这是我的代码的样子: public class SocketLevelWebClient { public string SendWebRequest(string url, string request) { using(TcpClient tc = new TcpClient()) { tc.Connect(url, 80); using (NetworkStream ns = tc.GetStream()) { using (System.IO.StreamWriter sw = new System.IO.StreamWriter(ns)) { using (System.IO.StreamReader sr = new System.IO.StreamReader(ns)) { sw.Write(request); sw.Flush(); return sr.ReadToEnd(); } } } } } 请求本身: SocketLevelWebClient wc = new […]

如何使用HttpWebRequest模拟浏览器文件上传

伙计们,首先感谢您的贡献,我在这里找到了很好的回复。 然而,我遇到了一个我无法弄清楚的问题,如果有人可以提供任何帮助,我将不胜感激。 我正在用C#开发这个应用程序,可以将图像从计算机上传到用户的photoblog。 为此,我是用于主要用PHP编写的photoblogs的pixig pixelpost平台。 我在这里和其他网页上搜索过,但那里提供的例子对我没用。 以下是我在我的示例中使用的内容:( 使用HTTPWebrequest上传文件(multipart / form-data) )和( http://bytes.com/topic/c-sharp/answers/268661-how-upload-file-via- c-code )一旦准备就绪,我将在互联网上免费提供,也可以创建一个Windows移动版本,因为我是pixpost的粉丝。 这是我用过的代码: string formUrl = “http://localhost/pixelpost/admin/index.php?x=login”; string formParams = string.Format(“user={0}&password={1}”, “user-String”, “password-String”); string cookieHeader; HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(formUrl); req.ContentType = “application/x-www-form-urlencoded”; req.Method = “POST”; req.AllowAutoRedirect = false; byte[] bytes = Encoding.ASCII.GetBytes(formParams); req.ContentLength = bytes.Length; using (Stream os = req.GetRequestStream()) { os.Write(bytes, 0, […]

使用asp.net和C#从javascript调用外部服务器上的webservice

我正在尝试使用ASP.NET页面测试Web服务调用,该页面创建一个包含用户名和密码字段以及“提交”按钮的表单。 (我正在使用的jQuery和.js文件都包含在head元素的脚本标记中。) “提交”按钮调用在C#代码隐藏文件中创建的函数,该函数调用单独的JavaScript文件。 protected void mSubmit_Click(object sender, EventArgs eventArgs) { String authenticate = String.Format(“Authentication(\”{0}\”,\”{1}\”);”, this.mUsername.Text,this.mPassword.Text); Page.ClientScript.RegisterStartupScript(this.GetType(), “ClientScript”, authenticate, true); } JavaScript函数Authenticate使用jQuery和Ajax对不同的服务器进行Web服务调用,发送JSON参数并期望返回JSON作为响应。 function Authentication(uname, pwd) { //gets search parameters and puts them in json format var params = ‘{“Header”:{“AuthToken”:null,”ProductID”:”NOR”,”SessToken”:null,”Version”:1},”ReturnAuthentication”:true,”Password”:”‘ + pwd + ‘”,”Username”:”‘ + uname + ‘”,”ReturnCredentials”:false }’; var xmlhttp = $.ajax({ async: false, type: “POST”, […]

使用带有登录页面的HttpWebRequest发送数据

我正在尝试使用HttpWebRequest类为此页面发送数据: www.stage1.darotools.com/Quran.v1.admin/_FormsWizard/CreateForm.asp 但是我遇到了登录validation的问题。 inheritance我的代码: System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); string postData = “ctlMessageID=” + 348; postData += (“&ctlUserID=” + 7); postData += (“&ctlTitle=” + 7); postData += (“&ctlEmail=” + “rrawhi@gmail.com”); postData += (“&ctlIsSystem=” + 0); postData += (“&ctlFormBody=”); postData += (“&ctlEnableCaptcha=”); postData += (“&ctlEmailAttachedFiles=”); postData += (“&ctlMailingList=”); postData += (“&ctlCommentaryTitle=” + 1); postData += (“&ctlIsActive=” […]

从任务中的异步HttpWebRequest调用捕获exception

我如何在下面的方法中捕获exception? private static Task MakeAsyncRequest(string url) { if (!url.Contains(“http”)) url = “http://” + url; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.UserAgent = “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”; request.Accept = “text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8”; request.Method = “GET”; request.KeepAlive = false; request.ProtocolVersion = HttpVersion.Version10; Task task = Task.Factory.FromAsync( request.BeginGetResponse, asyncResult => request.EndGetResponse(asyncResult), (object)null); return […]