标签: webclient

将WebClient错误作为字符串获取

我有一个测试Web服务的诊断工具.

我希望工具在出现问题时进行报告,因此我已经部署了一个服务,但合同有问题需要对其进行测试.

当我浏览它时,我得到一个带有描述性信息的页面,例如:

ExceptionDetail,可能由IncludeExceptionDetailInFaults = true创建,其值为:System.InvalidOperationException:在对WSDL导出扩展的调用中抛出异常:
System.ServiceModel.Description.DataContractSerializerOperationBehavior contract:类型XXX的DataContract无法添加到DataContractSet中在名称空间XXX中具有相同数据合同名称XXX的类型XXX已经存在且合同不等同等.

我想要的是能够打电话:

myErrorMsg = WebClient.DownloadString("MyBadService.svc");
Run Code Online (Sandbox Code Playgroud)

并将此有用的错误消息作为字符串,但我得到以下WebException:

远程服务器返回错误:(500)内部服务器错误.

如何获得在浏览器中收到的相同错误消息作为字符串返回,而不会出现异常?

谢谢.

c# web-services webclient

28
推荐指数
1
解决办法
1万
查看次数

C# - 如何进行HTTP调用

我想对网站进行HTTP调用.我只需要点击URL,不想上传或下载任何数据.什么是最简单,最快速的方法.

我尝试了下面的代码,但它的速度很慢,在第二次重复请求之后,它只是进入超时时间为59秒而不是恢复:

WebRequest webRequest = WebRequest.Create("http://ussbazesspre004:9002/DREADD?" + fileName);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = fileName.Length;

Stream os = webRequest.GetRequestStream();
os.Write(buffer, 0, buffer.Length);
os.Close();
Run Code Online (Sandbox Code Playgroud)

使用WebClient更有效率吗?

WebClient web = new WebClient();
web.UploadString(address);
Run Code Online (Sandbox Code Playgroud)

我正在使用.NET ver 3.5

c# webclient http webrequest

28
推荐指数
3
解决办法
6万
查看次数

如何在WebClient请求中使用动词GET?

我如何更改WebClient请求的动词?它似乎只允许/默认POST,即使在DownloadString的情况下.

        try
        {
            WebClient client = new WebClient();               
            client.QueryString.Add("apiKey", TRANSCODE_KEY);
            client.QueryString.Add("taskId", taskId);
            string response = client.DownloadString(TRANSCODE_URI + "task");                
            result = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(response);
        }
        catch (Exception ex )
        {
            result = null;
            error = ex.Message + " " + ex.InnerException;
        }
Run Code Online (Sandbox Code Playgroud)

而Fiddler说:

POST http://someservice?apikey=20130701-234126753-X7384&taskId=20130701-234126753-258877330210884 HTTP/1.1
Content-Length: 0
Run Code Online (Sandbox Code Playgroud)

c# webclient http-get

28
推荐指数
1
解决办法
8万
查看次数

shouldoverrideurlloading和shouldinterceptrequest之间的区别?

任何人请告诉我方法public WebResourceResponse shouldInterceptRequest (WebView view, WebResourceRequest request)和方法之间的区别public boolean shouldOverrideUrlLoading(WebView view, String url).

我正在创建一个Android应用程序,其中获取一个字符串作为我的WebView.I 中的点击事件的响应.我想存储此字符串并显示它.我看到了这两种方法.我尝试使用shouldOverrideUrlLoading哪个返回重定向网址当我检查创建一个示例应用程序使用google.com作为我加载的网址WebView并单击菜单.

谁能告诉我两种方法之间的区别以及我应该使用哪种方法?

android webclient webview intercept

28
推荐指数
2
解决办法
3万
查看次数

如何在C#中填写表单并使用Webclient提交

我很擅长在C#中使用库WebClient,HttpResponse和HttpRequest,所以请耐心等待我的问题.

我需要构建一个基于C#的WinForm,它可以打开一个URL,该URL通过基本授权进行保护.我这样做是将它添加到标题中,如下所示:

using (WebClient wc = new WebClient())
{
    wc.Headers.Add(HttpRequestHeader.Authorization, "Basic " +
    Convert.ToBase64String(
    Encoding.ASCII.GetBytes(username + ":" + password)));
}
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好!现在我想填写一个带有数字的表单,然后我从网站上找到源代码,并发现名称是"数字".所以我写这个:

NameValueCollection formData = new NameValueCollection();  
formData["number"] = number
byte[] responseBytes = wc.UploadValues(theurl, "POST", formData);
string response = Encoding.ASCII.GetString(responseBytes);
textBox_HTML.Text = response; 
Run Code Online (Sandbox Code Playgroud)

但是我该怎么提交呢?我想收到我的"搜索结果"......

c# webclient

27
推荐指数
2
解决办法
7万
查看次数

如何从javax.ws.rs.core.Response响应中检索JSON响应?

我正在向API请求并获取响应状态代码200.

api的json响应包括响应.

import javax.ws.rs.core.Response;

Response response = webclient.post(SomeReqString);
Run Code Online (Sandbox Code Playgroud)

如何json从Web客户端响应中将响应检索为字符串?

java web-services webclient jax-rs jax-ws

27
推荐指数
2
解决办法
5万
查看次数

HEAD与WebClient?

我将假设答案是否定的....有没有办法使用WebClient发送HEAD方法并将标题作为字符串或类似的东西返回?

.net webclient http head

25
推荐指数
2
解决办法
8421
查看次数

WebClient restful删除

我有一个简单的Restful服务从控制台应用程序调用,所以我使用WebClient.我想知道这次删除是否正确.

该URL看起来像localhost/RestService1/Person/1

using (var client = new WebClient()) 
{
    client.UploadString(url, "DELETE", "");
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢UploadString没有数据参数的重载.传递一个空参数并不适合我.有没有更好的方法用于"删除"?

我可以使用WebRequest,但我想只使用WebClient来保持一致.

这是WebRequest块

var request = WebRequest.Create(url);
request.Method = "DELETE";
var response = (HttpWebResponse)request.GetResponse();
Run Code Online (Sandbox Code Playgroud)

两个块都工作正常,但最好的是什么?或者,还有更好的方法?

c# webclient httpwebrequest

25
推荐指数
2
解决办法
2万
查看次数

WebClient是否使用KeepAlive?

我需要向单个主机发出大约50个HTTP请求(API调用).性能很重要,所以我想使用HTTP KeepAlive.WebClient是否支持此功能?

.net c# webclient keep-alive

24
推荐指数
2
解决办法
2万
查看次数

如何使用webclient异步下载多个文件,但一次只能一个?

很难找到使用webclient类异步方法下载多个文件的代码示例,但一次下载一个.

如何启动异步下载,但要等到第一个完成,直到第二个,等等.基本上是一个问题.

(注意我不想使用同步方法,因为异步方法的功能增加了.)

以下代码立即启动我的所有下载.(进度条到处都是)

private void downloadFile(string url)
        {
            WebClient client = new WebClient();

            client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
            client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);

            // Starts the download
            btnGetDownload.Text = "Downloading...";
            btnGetDownload.Enabled = false;
            progressBar1.Visible = true;
            lblFileName.Text = url;
            lblFileName.Visible = true;
            string FileName = url.Substring(url.LastIndexOf("/") + 1,
                            (url.Length - url.LastIndexOf("/") - 1));
             client.DownloadFileAsync(new Uri(url), "C:\\Test4\\" + FileName);

        }

        void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
        {

        }

        void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {
            double bytesIn = double.Parse(e.BytesReceived.ToString());
            double totalBytes = double.Parse(e.TotalBytesToReceive.ToString());
            double …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous webclient

24
推荐指数
1
解决办法
4万
查看次数