用VB.net向豆瓣API发送和获取数据

最近在用VB制作关于豆瓣的本地应用,有这样几个难点。
其一是豆瓣的API必须以UTF-8格式发送,而VB的编码都是ASCII的。
其二是如何发送和接受数据。

'这是用来将字符串转变为UTF-8格式
Public Function StringAsUtf8Bytes(ByVal strData As String) As String
  Dim bytes() As Byte
  bytes = System.Text.Encoding.UTF8.GetBytes(strData)
  '这是用来将字符串转变为UTF-8格式,现在是字节数组形式。
  Dim i%
  For i = 0 To UBound(bytes)
    StringAsUtf8Bytes &= "%" & Hex(bytes(i))
  Next
  '通过循环来把字节数组先转换为16进制,再在前方加上%就是API能接受的格式了。UTF-8把一个汉字转换为三个字节[?].即%AA%BB%CC的格式。
End Function

Sub FromDouban(ByVal moviename)
  Dim objXMLHTTP, URL, html
  objXMLHTTP = CreateObject("Microsoft.XMLHTTP")
  Dim mn = StringAsUtf8Bytes(moviename)
  URL = "http://api.douban.com/movie/subjects?q=" & mn & "&max-results=1"
  '子过程接受外部输入的检索字符串,转变为API能接受的UTF-8格式后插入URL字符串变量。URL的其他部分是豆瓣提供的API接口。
  Try
    objXMLHTTP.Open("GET", URL, False)  '用GET 命令发送和接受数据。
    objXMLHTTP.Send()
    html = objXMLHTTP.responseText
    Dim s = srchwds(html, "<opensearch:totalResults>", "</opensearch:totalResults>")
    If s = "0" Then
      MessageBox.Show("糟糕~没找到影片。尝试着使用一下它的英文名字吧~", "出错啦~")
    Else
      '输出为xml文件。XML文件可用数据岛技术在HTML中打开,或者直接用VB通过设计检索特定的字符串来读取。
      '这里推荐用下述的数据流的写入方式,直接用FileOpen会导致UTF-8编码的文字写入一个不是以UTF-8编码的文件。
      Dim ADO_Stream As Object
      ADO_Stream = CreateObject("ADODB.Stream")
      With ADO_Stream
        .Type = 2
        .Mode = 3
        .Charset = "utf-8"
        .Open()
        .WriteText(html)
        .SaveToFile("default.xml", 2)
      End With
      ADO_Stream = Nothing
    End If
  Catch ex As Exception
    MessageBox.Show(ex.ToString, "Error From Sub FromDouban")
  End Try
End Sub