' jetrans.vb Imports System Imports System.IO Imports System.Net Imports System.Web Imports System.Text Imports System.Collections Public Class GoogleTranslate Shared Sub Main() Dim enc As Encoding = Encoding.UTF8 Dim input As String = "私は普通のC#プログラマです。" Dim url As String = "http://translate.google.com/translate_t" Dim param As String = "" ' ポスト・データの作成 Dim ht As Hashtable = new Hashtable() ht("text") = HttpUtility.UrlEncode(input, enc) ht("langpair") = "ja|en" ht("hl") = "en" ht("ie") = "UTF8" For Each k As String In ht.Keys param = param & String.Format("{0}={1}&", k, ht(k)) Next Dim data As byte() = Encoding.ASCII.GetBytes(param) ' リクエストの作成 Dim req As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest) req.Method = "POST" req.ContentType = "application/x-www-form-urlencoded" req.ContentLength = data.Length ' ポスト・データの書き込み Dim reqStream As Stream = req.GetRequestStream() reqStream.Write(data, 0, data.Length) reqStream.Close() ' レスポンスの取得と読み込み Dim res As WebResponse = req.GetResponse() Dim resStream As Stream = res.GetResponseStream() Dim sr As StreamReader = new StreamReader(resStream, enc) Dim html As String = sr.ReadToEnd() sr.Close() resStream.Close() ' 必要なデータの切り出し ' 結果は「wrap=PHYSICAL>〜」にあるという前提 Dim startmark As String = "wrap=PHYSICAL>" Dim rstart As Integer = html.IndexOf(startmark) + startmark.Length Dim rend As Integer = html.IndexOf("", rstart) Dim result As String = html.Substring(rstart, rend - rstart) Console.WriteLine(result) ' 出力:I am the normal C# programmer. End Sub End Class ' コンパイル方法:vbc /r:System.dll /r:System.Web.dll jetrans.vb