关于WebRequest一个例子

' VB Document
Imports System
Imports System.Web
Imports System.IO
Imports Microsoft.VisualBasic
Imports System.Web.HttpContext
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Text
Imports System.Text.RegularExpressions
Imports System.Net

Namespace brands
    public Class brand
     
  Function RemoveHTML(strhtml)
   if strhtml<>"" then
     dim s_str as string
      s_str=regex.replace(strHTML,"<[^>]+>","")
      s_str=replace(s_str,"&nbsp;","")
      return s_str
   end if
  End Function
  
        Function china_to_english(texts,languages)
      Dim payload As String = "hl=zh-CN&ie=UTF8&text="& texts &"&langpair="& languages &""
            dim str_return as string 
            Dim req As WebRequest = WebRequest.Create("http://translate.google.com/translate_t") ' 开始取连接.
            req.Credentials = CredentialCache.DefaultCredentials       '取得默认
   req.Method = "POST"                                        '以POST方式发送,这里默认是以GET方式发送
   req.ContentType = "application/x-www-form-urlencoded"      'POST方式需在传送这个编码,如果上传文件,则修为multipart/form-data
   req.timeout=10000                                          '连接超时定时
            req.ContentLength = payload.Length                         '头部长度
   Dim encoding As Encoding = Encoding.GetEncoding("UTF-8")   '转换成流,大部网站一般转换成UTF-8就可以了,注意是大写的编码
   Dim bytes As Byte() = Encoding.GetBytes(payload)           '转换成流
   req.ContentLength = bytes.Length                           '传送流的长度
   Dim newStream As Stream = req.GetRequestStream()           '转换写入
   newStream.Write(bytes, 0, bytes.Length)                    '写入传送流
   newStream.Close()                                          '关闭
   '上面发送完成,下面取得服务器返回
            Dim res As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse)  ' 传递返回标识
            if res.StatusDescription="ok" then  ' 返回取得状态.
      current.response.write("暂时无法连接到网站,请换用另一个程序")
      current.response.end()
   end if
            Dim dataStream As Stream = res.GetResponseStream()         ' 返回给指针
            Dim reader As New StreamReader(dataStream,encoding.getencoding("gb2312")) ' 读
            Dim responseFromServer As String = reader.ReadToEnd()      ' 读取所有
   
   str_return=responseFromServer                              '赋值回传
           
            reader.Close()                                             '接下来三个关闭
            dataStream.Close()
            res.Close()

            dim ss as string = str_return
   ss = regex.replace(ss,"(?i:(.+)(\<div)(.+)(\>)(.+)(\<\/div\>)(.+))","$5") '提取我们所要的译文
   ss = RemoveHTML(ss)                                       '删除HTML
   ss = ss.substring(3)                                      '删除翻译二字
            return ss                                                 '函数返回
    End function
  
 End Class
End Namespace

 

 

posted @ 2006-10-26 11:13  盗马人  阅读(1006)  评论(0)    收藏  举报