使用idhttp登录时出现问题,该网站未发送带有其帖子的任何用户名和密码

时间:2018-12-23 18:17:14

标签: delphi firemonkey indy idhttp

请注意,我曾经问过这个问题,但是由于某些个人问题我无法参加,所以它被删除了,元用户建议我找这个问题,这里是

最近,我遇到了一个网站,当您尝试登录时,该网站不会发送任何动态信息,甚至没有UsernamePassword!我的意思是,在我使用Fiddler之后和Http Analyzer我可以看到发生了4个事件:
所有这些都在网络浏览器中发生: enter image description here
1-登录首页的简单Get
2-一个Post发送一些数据(这些数据不包括我的UsernamePassword,它们看起来是静态的!即使有__USERCONTROLPATH可以提取来自step 1的响应,它不会改变,这意味着即使我尝试在不同时间使用不同的浏览器多次登录,包括__USERCONTROLPATH在内的所有内容都相同)
enter image description here 3-一个Post类型的JSON,请求为空,响应仅包含一行,如下图所示:
enter image description here

4-发生Get,这是登录主页,但是如果您查看HTML,则可以看到用户已登录!

我尝试一个接一个地执行这些步骤,但是我无法成功登录该网站,也无法理解我的UsernamePassword的发送方式!

在这里您可以看到我编写的一些代码:

//for the sake of cookies and ... i do a Get on the main page 
idHttp.get('MainLogPage');
//i send the first post which contains some information which never changes, they seems static and do not include the username and password 
idhttp.post('someURL', requestList);

jsonRawRequest := TJSONObject.Create;
jsonRequest := TStringStream.Create(jsonRawRequest.ToString, TEncoding.UTF8);
/here i try to do the post that you saw in the image, no value is sent so i send an empty json request.
idhttp.post('someOtherURL', jsonRequest)

最后我的问题是,我如何登录到这样的网站?我想念什么?目前,当我发布{{1 }},这里是错误的图片
enter image description here

更新01:
我的意思是更新整篇文章,并更详细地解释每一步,但是由于我正纠结于提琴手,并再次检查了这些文章,所以我注意到,Step 3发送JSON Browser时,类型为POST,在“ HTTP分析器”中,我可以看到它发送和接收"https://www.somewebsite.com//Index.aspx/LoginUser",但是在application/json中,JSON为空!所以我检查了Fiddler那是我看到的地方!,我再次去检查了Webforms分析器的原始流,在那儿我还看到了用户名和密码被发送,我不知道该怎么做。帖子包含此字符串,您可以在下面看到,但是在提琴手中,您可以在“ TextView”中看到它,而在HTTP分析器中,您可以在原始流中看到它,现在我知道了,您能告诉我如何模仿这样的帖子吗? ?,我认为用户和密码是加密方式,这是我自己的事,我可能必须联系该网站的管理员以获取算法?无论如何,首先,首先,如何发送这样的{{1 }}?
在Fiddler中:
enter image description here

HTTP分析器:
enter image description here

更新02:
我尝试了TextView所说的话, 但是网站中的HTTP并不是标准的,如您所见:
The input is not a valid Base-64 string Error, My JSON uses double quotation marks instead of single quotations
之后,我尝试了一个硬编码的解决方案,并从文件中读取了POST,如下所示:

Remy Lebeau

之后,我将参考设置为登录页面:

JSON

最后我发送了JSON

loader := TStringList.Create;
loader.LoadFromFile('jsonWithCustomFormat.txt');
jsonRequest := TStringStream.Create(loader[0], TEncoding.UTF8);  

我所做的结果是一个警告错误,如下图所示:
enter image description here

对于问题所在,我感到非常困惑,我必须解决此问题,因此任何提示或帮助都将不胜感激。

0 个答案:

没有答案