知道要发送到服务器的标头

在这个网站上 ,您可以输入您的学生卡号码,然后它会显示卡上还剩多少钱。 是否可以在java中使用,例如使用JSOUP? 在将卡号发送到服务器时,如何知道我应该使用哪个标题? 当我使用chromes开发人员工具时,我会获得有关此标题的信息

Remote Address:95.80.... Request URL:http://kortladdning3.chalmerskonferens.se/CardLoad_Order.aspx Request Method:GET Status Code:200 OK Response Headers view source Cache-Control:private Content-Length:6807 etc... 

我可以用某种方式使用这些信息吗?

基本上我想要的是使用JAVA获得多少钱。

编辑:

这是我目前的代码:

 res = Jsoup.connect(url) .userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36") .data("txtCardNumber", "3819xxxxxxxxxx") .data("__VIEWSTATE", "balbalblaonglong") .data("__EVENTVALIDATION", "/wEWBAKG7bXPBQLi0uqnCgKF69rWBAK14fOOCgrUt4CBVP4K0VKe0uOPxLSAu26y") .data("hiddenIsMobile", "desktop") .cookie("ASP.NET_SessionId", "kcvawxel4bzg3yqotr22b1ig") .method(Method.GET) .execute(); 

这给了我这个错误:

 HTTP error fetching URL. Status=500, URL=http://kortladdning3.chalmerskonferens.se/CardLoad_Order.aspx?txtCardNumber=3819276248836621&__VIEWSTATE=%2FwEPDwUHNjA4NDA1NQ9kFgQCAw9kFgoCAQ9kFgICAQ8PFgIeBFRleHQFClBUTSBLb3J0bnJkZAICDxYCHgdWaXNpYmxlaGQCAw8WAh8BaGQCBA8WAh8BaGQCBQ8WAh8BaBYCAgEPEGRkFgBkAgUPDxYCHwAFCShkZXNrdG9wKWRkZGzBhwMIv3yxqKnC0C7%2BPlC0PlDG&__EVENTVALIDATION=%2FwEWBAKG7bXPBQLi0uqnCgKF69rWBAK14fOOCgrUt4CBVP4K0VKe0uOPxLSAu26y&hiddenIsMobile=desktop 

如果我只有.data("txtCardNumber", "3819276248836621") ,我没有得到错误,但我没有得到正确的网站(它基本上说错误的卡号)。 有小费吗?

EDIT2:现在有点起作用了。 如果我添加更多的cookie信息,它将显示我剩下多少钱(太棒了!)。 但是,如果我更改了卡号(给我的朋友),我仍然可以获得自己卡上的剩余金额。 我想这与cookies有关吗? 添加新cookie会话的任何提示?

编辑3:现在我在发送数据之前得到了cookie,但它仍然不起作用。 我尝试发送编码和解码数据,没有任何作用。

  url = "http://kortladdning3.chalmerskonferens.se/CardLoad_Order.aspx"; Connection.Response loginForm = Jsoup.connect(url) .method(Connection.Method.GET) .execute(); Document document = Jsoup.connect(url) .userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36") // .data("__VIEWSTATE","%2FwEPDwUHNjA4NDA1NQ9kFgQCAw9kFgoCAQ9kFgICAQ8PFgIeBFRleHQFClBUTSBLb3J0bnJkZAICDxYCHgdWaXNpYmxlaGQCAw8WAh8BaGQCBA8WAh8BaGQCBQ8WAh8BaBYCAgEPEGRkFgBkAgUPDxYCHwAFCShkZXNrdG9wKWRkZGzBhwMIv3yxqKnC0C7%2BPlC0PlDG") .data("__EVENTVALIDATION", "%2FwEWBAKG7bXPBQLi0uqnCgKF69rWBAK14fOOCgrUt4CBVP4K0VKe0uOPxLSAu26y") .data("hiddenIsMobile", "desktop") .data("txtCardNumber", "xxxxxxxxxxxx") .data("SavedCardNumber", "") .data("btnNext","N%C3%A4sta") .cookies(loginForm.cookies()) .get(); 

你绝对可以使用Jsoup。 事实上,我已经使用Jsoup成功地从图书馆网站检索用户的信息。 无论如何,我将为您提供完成此任务所遵循的步骤。

第1步 :您输入的学生证号码应为表格的输入。 因此,只需右键单击您在学生编号中键入的区域,然后选择“ Inspect Element 。 在那里,您将能够检查输入和表单的属性。

第2步 :密切调查表格并记录所有输入字段(包括隐藏字段)。 您需要知道所有字段的namevalue 。 您还需要知道表单请求是在GET还是POST

第3步 :现在让我们来看看有趣的部分。 使用以下代码段向服务器发出请求并检索表单。

 Connection.Response res = Jsoup.connect(url) .userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36" .data(inputName1, inputValue1 inputName2, inputValue2) .cookies(cookies) //do not add this line if no cookies are required .method(Method.GET) .execute(); 

url是请求地址,在您的情况下将是http://kortladdning3.chalmerskonferens.se/CardLoad_Order.aspxuserAgent告诉服务器您的浏览器详细信息, data是您在表单中放置所有输入字段的名称和值对的位置。 cookies是您放置cookie的地方,您需要检查您的请求是否需要服务器接受cookie,这可以在“cookies”部分的网络选项卡中查看(如果不需要cookie,请删除cookie行)。 method指定您的请求方法。

检索到的res对象将包含您需要的所有信息,html,cookie和所有内容。

这些只是一般化的步骤。 您可能需要根据需要添加更多代码,但基本上这是您处理请求和服务器的方式。

UPDATE

我看到你传递了你的cookie的硬编码字符串值,我认为这是你的问题的原因。 你是如何检索你的cookie的? 每次发出请求或登录时,会话的Cookie都会更改,您应该动态保存并传递Cookie。

你可以通过调用res.cookies()来获取你的cookie