簡體   English   中英

無法找出正確的參數來模仿Java中的網站表單

[英]Can't figure out the correct Parameter to mimic a website form in Java

我是網站源代碼和Java的初學者,我試圖找到一種以編程方式訪問特定網站的方法。 我知道了登錄/身份驗證部分,但現在我陷入了應該相當容易的事情。 我需要告訴Java從選項列表中進行選擇,但是我不知道要為以下源代碼發送哪些參數:

<FORM ACTION="/services/reinforce" METHOD="POST" onSubmit="return checkSubmit()">
<INPUT TYPE="hidden" NAME="call1" VALUE="search">
<TABLE  CLASS="Data_table" summary="Select an option"width="100%"><CAPTION class="ctext">Search:    </CAPTION>
<TR>
<TD CLASS="default"><LABEL for=input_id><SPAN class=fvisible>Options</SPAN></LABEL>
<SELECT NAME="val_num" SIZE="1"  ID="optionId">
<OPTION VALUE="">None
<OPTION VALUE="1">Option 1
<OPTION VALUE="2">Option 2
<OPTION VALUE="3">Option 3
<OPTION VALUE="4">Option 4
<OPTION VALUE="5">Option 5
<OPTION VALUE="6">Option 6
<OPTION VALUE="7">Option 7
...

例如,如果我想選擇選項1,我通常要做的是

String data = URLEncoder.encode("val_num", "UTF-8") + "=" + URLEncoder.encode("1", "UTF-8"); 

它以某種方式工作,它沒有返回FileNotFoundException,但是將我重定向到另一個鏈接。 當我在任何瀏覽器中手動進行操作時,它都可以正常工作,並將我重定向到Option1。 可能有什么問題?

您是否也在發送與隱藏的輸入元素相對應的參數。

String data = "call1=search&val_num=1";

(請注意,當您可以清楚地看到字符串僅包含URL安全字符時,就無需進行URL編碼。)

另外,我假設您正在將此數據字符串傳遞給POST請求(而不是GET請求)。 那是對的嗎?

以下是檢查清單:

  1. 您是否要向/services/reinforce發出POST請求?
  2. 在提交表單之前, checkSubmit() JavaScript函數是否checkSubmit()表單的輸入/選擇/文本區域元素進行任何更改? 如果是這樣,則需要模擬通過POST請求發送的數據中的那些更改。 (這可能有助於編輯您的問題並添加checkSubmit()函數的源。)
  3. 您是否將請求內容類型設置為application/x-www-form-urlencoded
  4. 您是否正在發送適當的授權? 通常,網站在身份驗證成功后會發送cookie。 您是否發送了正確的Cookie標頭?
  5. data是POST請求的內容主體嗎?
  6. 您是否也嘗試過在體內發送call1=search 也許隱藏的領域也是必要的。
  7. 您要發送什么User-Agent標頭?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM