XMLHTTPRequest如何访问需要安全验证的网站
来源:互联网 发布:淘宝店铺复古港风推荐 编辑:程序博客网 时间:2024/06/15 18:53
以下是在Delphi中的代码,在其他的语言或脚本如C# / JavaScript / ASP.NET / ASP / PHP中也是一样的,XMLHTTPRequest的使用是通用的。
网上说可以直接这样:
httpReq.open('Get',url,True,edt_User.Text,edt_Pwd.Text) //请不要在此放入验证用户和密码,会出错!这个在连接Restful服务中出错!发送Header信息就没有问题,EncodeString()是Delphi中进行Base64编码的函数,编码前的格式为:username:password
UsrPwd_Base64 := edt_User.Text+':'+edt_Pwd.Text; UsrPwd_Base64 := 'Basic '+EncodeString(UsrPwd_Base64);//'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' HttpReq.setRequestHeader('Authorization', UsrPwd_Base64);
完整代码如下:
procedure TTestForm.ExecServerMethodByXMLHttp(const useGet: Boolean);var url,UsrPwd_Base64: string; HttpReq:IXMLHTTPRequest; JsonParamStr:string;begin Memo1.Lines.Clear; Memo1.Lines.Add('XMLHTTPRequest '+RadioGroup1.Items[RadioGroup1.ItemIndex]+'方式:'); Memo1.Lines.Add('===================================='); HttpReq := CoXMLHTTP.Create;//早期版本如Delhp7中则为 HttpReq := CoXMLHTTPRequest.Create; //两种提交请求的方式:Get和Post,Get是通过URL地址传递参数如果是中文需要转码,需要添加时间戳 Post不需要添加时间戳 //get url := 'http://localhost:5269/api/webmemberapi/NewMemberRegister?timestamp='+inttostr(Windows.GetTickCount); url := edt_SrvIp.Text+':'+edt_Port.Text+'/peci/rest/TServerMethods/GetRoomInfo_ByRoom/'; url := url+GetParamStr_Delphi; if useGet then begin //http get if chk_Pwd.Checked then //httpReq.open('Get',url,True,edt_User.Text,edt_Pwd.Text) //请不要在此放入验证用户和密码,会出错! httpReq.open('Get',url,False,EmptyParam,EmptyParam) else httpReq.open('Get',url,False,EmptyParam,EmptyParam); end else begin //http post 如用post方法实际上是调用updateGetRoomInfo_ByRoom,post方式会在函数名前加上update前缀 httpReq.open('Post', url, False, EmptyParam, EmptyParam); end; if chk_Pwd.Checked then //如果服务器需要验证用户,请把验证信息放入Header中。 begin begin UsrPwd_Base64 := edt_User.Text+':'+edt_Pwd.Text; UsrPwd_Base64 := 'Basic '+EncodeString(UsrPwd_Base64);//'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' HttpReq.setRequestHeader('Authorization', UsrPwd_Base64); end; end; //HttpReq.setRequestHeader('Accept', 'application/x-www-form-urlencoded'); //HttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); HttpReq.setRequestHeader('If-Modified-Since', '0'); HttpReq.setRequestHeader('Accept', 'application/json'); HttpReq.setRequestHeader('Content-Type', 'application/json'); HttpReq.setRequestHeader('Charset', 'utf-8'); //请求主体 try if useGet then begin //http get 如果url中已包含了参数,则无需在此再次传递参数 HttpReq.send(EmptyStr); end else begin //http post JsonParamStr := GetParamStr_Json;//GetParamStr_Delphi;// HttpReq.send(JsonParamStr); end; Memo1.Lines.Add(HttpReq.responseText); except on Ex:Exception do Memo1.Lines.Add(Ex.Message); end;end;
阅读全文
0 0
- XMLHTTPRequest如何访问需要安全验证的网站
- Python 访问需要登录验证的接口
- 网站的安全如何得到安全保障
- 访问网站需要密码的解决方案
- 学习Photoshop需要经常访问的网站
- Java用HttpsURLConnection访问https网站的时候如何跳过SSL证书的验证?
- 如何生成一个安全的验证码
- 如何计算一个网站需要的带宽?
- 如何构建安全的电子商务网站
- 如何构建安全的电子商务网站
- 如何消除网站安全的七大风险
- 如何消除网站安全的七大风险
- 如何消除网站安全的七大风险
- 如何消除网站安全的七大风险
- 如何消除网站安全的七大风险
- 如何消除网站安全的七大风险
- 如何辨别密码安全糟糕的网站
- (转)查看需要验证的网站信息 模拟登陆
- UMHexagonS算法优化
- Swift 就像 Kotlin?看看 Swift 与 Kotlin 的简单对比
- Android Fragment 隐藏或显示时调用的生命周期方法
- JS配置文件动态加载CSS,js和定义请求路径
- javaweb学习总结——获得MySQL数据库自动生成的主键
- XMLHTTPRequest如何访问需要安全验证的网站
- Exception:"xxxx.txt":1: premature EOF errors in crontab file, can't install.
- H.264抗误码策略及FMO
- Servlet基础
- 导出excel
- 形参与实参&值传递和地址传递
- 关于jwt的思考
- vue
- onblur和onlick