标签: webclient

C#WebClient - 查看源代码问题

我正在使用C#WebClient将登录详细信息发布到页面并阅读所有结果.

我试图加载的页面包括flash(在浏览器中,它转换为HTML).我猜它是闪存避免被搜索引擎捡起来???

我感兴趣的flash只是文本(不是图像/视频)等,当我在firefox中"查看选择源"时,我确实在HTML中看到了我想看到的文本.

(有趣的是,当我查看整个页面的源代码时,我看不到HTML中的文本,我想看到.这可能是相关的吗?)

目前,在我发布了我的登录详细信息并将HTML加载回来之后,我看到了不显示Flash HTML的页面(就像我查看了整个页面的源代码一样).

提前致谢,

吉姆

PS:我应该指出POST实际上正在运行,我的登录成功.

c# screen-scraping webclient httpwebrequest winforms

2
推荐指数
1
解决办法
3158
查看次数

如何以阻塞/同步方式下载文件?

我对silverlight很新,并且非常惊讶地发现只能进行异步文件下载.好吧,我试图通过设置一个标志并等待它改变来反击这一点.这是我的简单代码

    void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        WebClient webClient = new WebClient();
        webClient.DownloadProgressChanged +=
            new DownloadProgressChangedEventHandler(webClient_DownloadProgressChanged);
        webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
        webClient.OpenReadAsync(new Uri("/trunk/internal/SilverLightInterface.ashx?xxid=XXX", UriKind.Relative));
        while (XmlStateStream == null) { }
        lblProgress.Content = "Done Loading";
    }
    void webClient_DownloadProgressChanged(object sender, 
        DownloadProgressChangedEventArgs e) {

        lblProgress.Content = "Downloading " + e.ProgressPercentage + "%";
    }
    volatile Stream XmlStateStream = null;
    void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    {
        if (e.Error != null)
        {
            lblProgress.Content = "Error: " + e.Error.Message;
            return;
        }
        XmlStateStream = e.Result;

    } 
Run Code Online (Sandbox Code Playgroud)

这导致Firefox实际冻结(这在我开发时正在做其他事情时非常烦人)(顺便说一下,对firefox的称赞导致我测试它并且firefox冻结了,但是我没有丢失我在恢复后输入的内容)

我不明白为什么while(XmlStateStream==null){} …

c# silverlight events webclient blocking

2
推荐指数
1
解决办法
4844
查看次数

有没有可以使用的Subversion Web客户端

我想在Linux(首选)或Windows上安装svn Web客户端。我只需要只读功能(不需要提交),并且我希望能够使用diff比较版本。我的svn服务器在另一台计算机上,因此Web服务器需要通过http访问它。它也应该是免费的...

您知道这样的网络客户端吗?

linux svn webclient

2
推荐指数
1
解决办法
949
查看次数

将字符串发送到PHP页面并使PHP页面显示字符串

我想要做的是让我的PHP页面显示一个字符串,我通过System.Net.WebClient通过我的C#应用​​程序中的函数创建.

真的是这样的.以最简单的形式,我有:

WebClient client = new WebClient();  
string URL = "http://wwww.blah.com/page.php";
string TestData = "wooooo! test!!";

byte[] SendData = client.UploadString(URL, "POST", TestData);

所以,我甚至不确定这是否是正确的方法..而且我不确定如何实际获取该字符串并将其显示在PHP页面上.像print_r(SendData)?

任何帮助将不胜感激!

php c# webclient

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

使用MemoryStream通过WebClient Post发送XML

我正在尝试发送我在内存流中创建的XML文件.当我尝试使用UploadFile并获得无效参数的错误时,问题就出现了.我的问题是,无论如何我可以使用我创建的内存流WebClient.UploadFile来发送文件或者我是否需要以其他方式执行此操作?

string firstname = Request.Headers["firstname"].ToString();
string lastname = Request.Headers["lastname"].ToString();
string organization = Request.Headers["organization"].ToString();
string phone = Request.Headers["phone"].ToString();

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
MemoryStream ms = new MemoryStream();
using (XmlWriter xml = XmlWriter.Create(ms, settings))
{
    xml.WriteStartDocument();
    xml.WriteStartElement("List");
    xml.WriteWhitespace("\n");

    xml.WriteStartElement("Employee");
    {
        xml.WriteElementString("First", firstname);
        xml.WriteElementString("Last", lastname);
        xml.WriteWhitespace("\n");
        xml.WriteElementString("Organization", organization);
        xml.WriteElementString("Phone", phone);
    }

    xml.WriteEndElement();
    xml.WriteEndDocument();
}

WebClient client = new WebClient();

client.UploadFile("http://test.com/test.aspx", ms);
Run Code Online (Sandbox Code Playgroud)

c# xml asp.net webclient memorystream

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

非阻止下载

我是Windows Phone 7开发的新手,如果你愿意,我在查找如何在'后台'中下载一些数据时会遇到一些麻烦.我知道这是可能的,因为像ESPN等应用程序显示"正在加载... ..".在下载他们的数据时,UI仍然完全响应.我想要做的是下载一些Twitter数据.

这是我现在拥有的,但它阻止了atm:

// Constructor:

// load the twitter data
WebClient twitter = new WebClient();

twitter.DownloadStringCompleted += new DownloadStringCompletedEventHandler(twitter_DownloadStringCompleted);
twitter.DownloadStringAsync(new Uri("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=badreligion"));

// Callback function:

void twitter_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
  if (e.Error != null)
  {
    return;
  }

  XElement xmlTweets = XElement.Parse(e.Result);

  TwitterListBox.ItemsSource = from tweet in xmlTweets.Descendants("status")
                               select new TwitterItem
                               {
                                 ImageSource = tweet.Element("user").Element("profile_image_url").Value,
                                 Message = tweet.Element("text").Value,
                                 UserName = tweet.Element("user").Element("screen_name").Value
                               };

}
Run Code Online (Sandbox Code Playgroud)

编辑:尝试多线程:

// in constructor
Dispatcher.BeginInvoke(new ThreadStart(StartTwitterUpdate));

// other functions
private void StartTwitterUpdate()
{
  // load …
Run Code Online (Sandbox Code Playgroud)

c# webclient windows-phone-7

2
推荐指数
1
解决办法
992
查看次数

WebClient.UploadValuesAsync-获取在请求中发送的值

一旦UploadValuesCompleted事件已被触发,是有可能得到的NameValueCollection是在请求上传?

我希望重新发送请求的可能性。

我正在做这样的事情:

NameValueCollection data = new NameValueCollection();
data.Add("myParam", "myValue");

WC.Headers["Content-Type"] = "application/x-www-form-urlencoded";
WC.UploadValuesAsync(Url, "POST", data);
Run Code Online (Sandbox Code Playgroud)

c# webclient

2
推荐指数
1
解决办法
5240
查看次数

DownloadString和特殊字符

我试图在使用webclient和下载字符串从网站下载的字符串中找到Mauricio的索引.但是,在网站上它包含一个外国人物Maurício.所以我在别处找到了一些代码

string ToASCII(string s)
{
return String.Join("",
     s.Normalize(NormalizationForm.FormD)
    .Where(c => char.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark));
}
Run Code Online (Sandbox Code Playgroud)

转换外国字符.我测试了代码并且它可以工作.所以我遇到的问题是,当我下载字符串时,它会下载为MaurA-cio.我试过了两个

wc.Encoding = System.Text.Encoding.UTF8; wc.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");

也没有阻止它作为MaurA-cio下载.

(另外,我无法更改搜索,因为我从列表中获取搜索词).

我还能尝试什么?谢谢

c# webclient downloadstring

2
推荐指数
1
解决办法
2144
查看次数

使用C#将文件上传到Web服务器

我正在尝试使用C#按照以下方式在Web服务器中上传文件

try
{
    // create WebClient object
    WebClient client = new WebClient();

    string myFile = @"D:\test_file.txt";
    client.Credentials = CredentialCache.DefaultCredentials;

    // client.UploadFile(@"http://mywebserver/myFile", "PUT", myFile);
    client.UploadFile(@"http://localhost/uploads", "PUT", myFile);
    client.Dispose();
}
catch (Exception err)
{
    MessageBox.Show(err.Message);
}
Run Code Online (Sandbox Code Playgroud)

但是每次我得到这个错误:

远程服务器返回错误:(405)不允许使用方法。

c# webclient

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

C#WebClient不返回UTF-8

嘿:)我正在努力使WebClient返回UTF-8。但是,当子应该返回像Ä它更多的是E还是让我觉得。

尝试了很多解决方法,但是它不起作用。

private string translate(string input, string languagePair)
{
    string url = String.Format("https://translate.google.com/?hl=en&ie=UTF8&text={0}&langpair={1}", input, languagePair);
    WebClient wc = new WebClient();
    wc.Headers.Add(HttpRequestHeader.AcceptCharset, "UTF-8");
    wc.Encoding = Encoding.UTF8;
    var data = wc.DownloadData(url);
    var result = Encoding.UTF8.GetString(data);
    //string result = wc.DownloadString(url);
    int start = result.IndexOf("result_box");
    string sub = result.Substring(start);
    sub = sub.Substring(0, sub.IndexOf("</span>"));
    start = sub.LastIndexOf(">");
    sub = sub.Substring(start + 1);
    return sub;
}
Run Code Online (Sandbox Code Playgroud)

c# webclient utf-8

2
推荐指数
1
解决办法
1186
查看次数