请注意,我曾经问过这个问题,但是由于某些个人问题我无法参加,所以它被删除了,元用户建议我找这个问题,这里是
最近,我遇到了一个网站,当您尝试登录时,该网站不会发送任何动态信息,甚至没有Username
和Password
!我的意思是,在我使用Fiddler
之后和Http Analyzer
我可以看到发生了4个事件:
所有这些都在网络浏览器中发生:
1-登录首页的简单Get
2-一个Post
发送一些数据(这些数据不包括我的Username
和Password
,它们看起来是静态的!即使有__USERCONTROLPATH
可以提取来自step 1
的响应,它不会改变,这意味着即使我尝试在不同时间使用不同的浏览器多次登录,包括__USERCONTROLPATH
在内的所有内容都相同)
3-一个Post
类型的JSON
,请求为空,响应仅包含一行,如下图所示:
4-发生Get
,这是登录主页,但是如果您查看HTML
,则可以看到用户已登录!
我尝试一个接一个地执行这些步骤,但是我无法成功登录该网站,也无法理解我的Username
和Password
的发送方式!
在这里您可以看到我编写的一些代码:
//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 }},这里是错误的图片:
更新01:
我的意思是更新整篇文章,并更详细地解释每一步,但是由于我正纠结于提琴手,并再次检查了这些文章,所以我注意到,Step 3
发送JSON
Browser
时,类型为POST
,在“ HTTP分析器”中,我可以看到它发送和接收"https://www.somewebsite.com//Index.aspx/LoginUser"
,但是在application/json
中,JSON
为空!所以我检查了Fiddler
那是我看到的地方!,我再次去检查了Webforms
分析器的原始流,在那儿我还看到了用户名和密码被发送,我不知道该怎么做。帖子包含此字符串,您可以在下面看到,但是在提琴手中,您可以在“ TextView”中看到它,而在HTTP分析器中,您可以在原始流中看到它,现在我知道了,您能告诉我如何模仿这样的帖子吗? ?,我认为用户和密码是加密方式,这是我自己的事,我可能必须联系该网站的管理员以获取算法?无论如何,首先,首先,如何发送这样的{{1 }}?
在Fiddler中:
更新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);
对于问题所在,我感到非常困惑,我必须解决此问题,因此任何提示或帮助都将不胜感激。