Tag: http

如何通过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 […]

如何在WP8中引用System.Net.Http?

我对WP8开发相对较新,并且遇到了一个我无法弄清楚的问题,即使经过数小时的谷歌搜索。 我正在使用visual studio 2012并使用NuGet实现了System.Net.Http,检查了引用,copy local设置为true,但它不会构建。 这是一个问候我的错误消息: CA0001 Error Running Code Analysis CA0001 : The following error was encountered while reading module ‘3D Protect Premium’: Could not resolve member reference: [System.Net.Http, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]System.Net.Http.HttpClient::PostAsync. [Errors and Warnings] (Global) 我如何解决这个问题,所以引用的版本是正确的? 编辑 代码在下面添加。 这似乎不成问题,它只是引用 – 我认为我的误解是诚实的,我只是不知道什么是System.Net.Http汇编! //Creates a new HttpClient Instance var client = new HttpClient(); // This […]

如何在Http响应完成之前读取响应流

使用HttpWebRequest对象发出请求时,我需要调用方法GetResponse()来发送请求并获取响应。 此方法的问题在于,在收到所有数据之前,它不会返回响应对象。 假设我正在下载一个100 MB的文件,在响应完成并且下载了所有100 MB之前,我将无法读取它。 我想要的是能够在它们到达时立即读取响应流字节,而无需等待响应完成。 我知道我可以使用Range Http标头,但它不适用于我的情况。

即使启用了SSL,Request.URL也始终返回http

我准备了一个ASP.NET Web应用程序(ASP.NET V2.0),我在我的IIS(V7.5)中配置它。 我在我的应用程序中使用了Request.Url.AbsoluteUri,它在我的服务器中运行良好。 我在客户端的服务器计算机(2008 R2 Server)上部署了Web应用程序。 但是在我的客户端环境中,即使启用了SSL,Request.Url.AbsoluteUri也始终返回http url。 是否在客户端的服务器计算机上配置了任何IIS设置? 请指导我

在C#ASP.NET中获取发布值

我有一个动态表单,允许动态添加许多字段, 我知道如何使用以下方法获取aspnet中单个字段的值:Request.Form [“myField”],但这里我有更多字段,我不知道这些字段的数量,因为这些是动态的 字段名称是“orders []” 例如: 在php中,我通过访问$_POST[‘orders’]将值作为数组获取; 例如: $orders = $_POST[‘orders’]; foreach($orders as $order){ //execute … } 我怎么能在c#中做到这一点?

从UserAgent字符串创建HttpBrowserCapabilitiesBase

所以HttpRequestBase类有一个Browser属性 ,它返回一个HttpBrowserCapabilitiesBase 。 我们目前在一些MVC基础设施代码中使用此属性来获取浏览器名称和版本号(输出到日志)。 我们还有一个使用ServiceStack的api,我希望能够将它挂钩到我们现有的基础架构中。 唯一缺少的是能够解析UserAgent标题中的浏览器名称和版本(我感谢IHttpRequest.UserAgent),但需要一种方法来解析它。 我的问题 – 是否可以用UserAgent字符串以某种方式创建一个HttpBrowserCapabilitiesBase? 我在msdn上看到的唯一可用的子类型是HttpBrowserCapabilitiesWrapper ,其唯一的ctor是另一个HttpBrowserCapabilitiesBase。 我以为这个类可能只是解析UserAgent字符串,所以为什么没有ctor(字符串)? 是否存在可以实现此目的的子类型,工厂或静态方法? 一般来说,我只是为了懒惰而这样做 – 当我知道.Net有这种能力他们只是隐藏它时,我不想写/找到另一个UserAgent解析器。

在C#中使用WebClient.DownloadString发送POST

我知道有很多关于使用C#发送HTTP POST请求的问题,但我正在寻找一种使用WebClient而不是HttpWebRequest 。 这可能吗? 这很好,因为WebClient类很容易使用。 我知道我可以设置Headers属性以设置某些标头,但我不知道是否可以从WebClient实际执行POST。

Cookie未在Windows Phone应用中发送,但Cookie在Windows 8应用中使用相同的代码发送

我有一个基本类,使用HttpWebRequest / HttpWebResponse发出GET和POST请求。 我使用我的类登录API,然后请求数据。 在Windows 8“Metro”应用程序中,它完全按预期工作。 在Windows Phone 8应用程序上,登录似乎成功,但在随后的数据请求中,不发送任何cookie,服务器响应,就像客户端未登录一样。 这是类,这个完全相同的代码用于Windows 8应用程序和Windows Phone应用程序: class Class1 { CookieContainer cookieJar = new CookieContainer(); CookieCollection responseCookies = new CookieCollection(); public async Task httpRequest(HttpWebRequest request) { string received; using (var response = (HttpWebResponse)(await Task.Factory.FromAsync(request.BeginGetResponse, request.EndGetResponse, null))) { using (var responseStream = response.GetResponseStream()) { using (var sr = new StreamReader(responseStream)) { […]

C#方法做URL编码?

我可以用什么c#类方法对URL字符串进行URL编码? 在我的用例中,我想将URL字符串作为URL参数本身传递。 就像在url中埋设URL一样。 没有一些编码“&”和“?” 处理外部Url参数的参数时,可以获取内部URL中的字符 谢谢

当服务器具有有效的SSL证书时,使用带有“https”的WebClient.UploadFile()时,“握手失败…意外的数据包格式”

我试图使用WebClient.UploadFile与HTTPS URL,但我最终得到 “System.IO.IOException:由于意外的数据包格式,握手失败” 相同的代码与Http完全正常,但我想要的服务器有一个非常好的ssl证书。 以下是与网络电话相关的任何内容: var url = WebServiceCommunication.GetProtocolName() + “…”; //turns out to be “https://… var wc = new WebClient(); //I am adding: wc.Headers.Add(HttpRequestHeader.KeepAlive, “…”) wc.Headers.Add(HttpRequestHeader.AcceptLanguage, “…”) we.Headers.Add(HttpRequestHeader.Cookie, “…”) wc.UploadFile(url, “POST”, filename); 我正在添加和使用https的任何HttpRequestHeaders的问题是什么? 或者,如果我想使用https,我是否错过了必要的标题? 当SSL证书有效时,有没有人指出为什么这可以用于HTTP而不是HTTPS?