誰かがこの問題の答えを知っていることを願っています。安全な Web ページにリクエストを送信する必要があるアプリを作成しています。これは、それ自体が安全な Web フォーム ページのアクションです (明白なことは言いませんが、基本的には、入力される情報を送信しようとしています)。最初のフォームで、フォームの「アクション」で指定されたページに送信します)。私が送信しなければならない「アクション」URL は、「.do」拡張子で終わります。これは、JAVA で動的に構築されたページを指定していると理解しています。
私の問題は、提出しても何も返ってこないことです。これが私が使用しているコードです(VB.Net、バージョン4.0を対象としています):
Dim PostValues As New NameValueCollection()
Dim RespString As String
Dim RespBytes() As Byte
' URL below is "action" for web form at https://www.deadiversion.usdoj.gov/webforms/validateLogin.jsp
Dim URL As String = "https://www.deadiversion.usdoj.gov/webforms/validateLogin.do"
' These POST values are obtained by examing the source code for the web form ".jsp" page, looking for "input" tags
PostValues.Add("submit", "")
PostValues.Add("deaNum", "--dea number value for our company--")
PostValues.Add("lname", HttpUtility.UrlEncode("boca pharmacal inc"))
PostValues.Add("ssn", "")
PostValues.Add("taxid", "--tax id value for our company--")
PostValues.Add("buttons.next", "Login")
Dim client As New WebClient()
client.Headers.Add("Content-Type", "application/x-www-form-urlencoded")
client.UseDefaultCredentials = True
RespBytes = client.UploadValues(URL, "POST", PostValues)
RespString = Encoding.UTF8.GetString(RespBytes)
このコードを実行すると、RespBytes の長さは 0 になり、RespString は単なる空の文字列になります。逆に上のコメントの「.jsp」で終わるURLを実験的に置き換えてみると、問題なくレスポンスが返ってくるので、「https」であることとは関係ないと思います。 "URL.
また、実験的に「.do」URL を取得してブラウザに貼り付け、直接 Web ブラウズしてみました。その場合、プログラムで試したときに何も返さなかったのと同じように、空のページが返されました。これは、何らかの理由で POST 経由で送信しようとした値が表示されないことを示しているようです。
これは URL が「.do」で終わっていることと関係がありますか? このような URL に送信する場合、送信時に何か特別なことを行う必要がありますか?