1

以下のコードでは、「NullReferenceException が処理されませんでした。オブジェクト参照がオブジェクトのインスタンスに設定されていません。」というメッセージが表示されます。エラーRichTextBox1.Text = thepage

このエラーの原因は何ですか?

ユーザー名やパスワードが間違っている可能性はありますか?

「暗号化されていない情報を含む暗号化されたページをリクエストしました。このページで表示または入力した情報は、第三者に簡単に読み取られる可能性があります。」というメッセージが表示された可能性があります。ブラウザでログイン Web ページにアクセスするとどうなりますか?

前もって感謝します!

Imports System.Net
Imports System.Text
Imports System.IO

Public Class Form1
Dim logincookie As CookieContainer

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim postData As String = "__MOID__=1688&__FH__=LoginForm&backUrl=http%3A%2F%2Fwww.reuters.com%2F&backParameterEncoded=false&source=portfolio&trackingSource=&loginName=johnnordeen1%40gmail.com&password=gromit+1&flag=true"
    Dim tempCookies As New CookieContainer
    Dim encoding As New UTF8Encoding
    Dim byteData As Byte() = encoding.GetBytes(postData)

    Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("https://commerce.us.reuters.com/login/pages/login/login.do?backUrl=http%3A%2F%2Fwww.reuters.com%2F&backParameterEncoded=false&source=portfolio&flow=PORTFOLIO&entry_source=registration"), HttpWebRequest)
    postReq.Method = "POST"
    postReq.KeepAlive = True
    postReq.CookieContainer = tempCookies
    postReq.ContentType = "application/x-www-form-urlencoded"
    postReq.Referer = "https://commerce.us.reuters.com/login/pages/login/login.do?backUrl=http%3A%2F%2Fwww.reuters.com%2F&backParameterEncoded=false&source=portfolio&flow=PORTFOLIO&entry_source=registration"
    postReq.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)"
    postReq.ContentLength = byteData.Length

    Dim postreqstream As Stream = postReq.GetRequestStream()
    postreqstream.Write(byteData, 0, byteData.Length)
    postreqstream.Close()

    Dim postresponse As HttpWebResponse

    postresponse = DirectCast(postReq.GetResponse(), HttpWebResponse)
    tempCookies.Add(postresponse.Cookies)
    logincookie = tempCookies
    Dim postreqreader As New StreamReader(postresponse.GetResponseStream())

    Dim thepage As String = postreqreader.ReadToEnd

    RichTextBox1.Text = thepage

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    WebBrowser1.DocumentText = RichTextBox1.Text
End Sub
End Class
4

1 に答える 1

1

これはセキュリティや権限とは何の関係もないと確信しています。最も可能性が高いのは、マークアップに「RichTextBox1」という名前のコントロールがないか、期待どおりに自動的にインスタンス化されていないことです。例外の原因となっているその行でデバッガーを中断し、RichTextBox1を評価すると、nullであることがわかります。ページにID="RichTextBox1"のコントロールがあり、期待どおりにインスタンス化されていることを再確認してください。

于 2013-01-25T21:26:29.610 に答える