即使给出了错误的代理凭据,HTTPWebrequest仍成功获取结果

时间:2019-05-17 10:30:05

标签: vb.net proxy httpwebrequest

我试图使用HttpWebRequest来访问Rest API,并且必须先对Proxy Server进行身份验证,然后才能访问Rest API。

为授权代理服务器,我向HttpWebrequest.Proxy.credentials添加了凭据。

现在,我的情况是,我要两次访问Rest API,首先使用正确的代理凭证,然后使用错误的代理凭证。

使用正确的代理凭据,可以按预期方式输出,但凭错误的凭据,我又能够从其余API提取数据。

如果我先反转具有错误凭据的API的顺序,然后再反转ith正确的凭据,那么在第一次API命中时我会得到407错误,这是正确的。

这怎么可能。

这是我的代码:

第一次通话:

var express = require('express');
var app = express();

var config = require('./config.js')

var multer  = require('multer')
var upload = multer({ dest: 'uploads/' });

var AWS = require('aws-sdk');
AWS.config.region = config.region;

var uuid = require('node-uuid');
var fs = require('fs-extra');
var path = require('path');


app.use(express.static('public'));

var rekognition = new AWS.Rekognition({region: config.region});

app.post('/api/recognize', upload.single("image"), function (req, res, next) {
var bitmap = fs.readFileSync(req.file.path);


rekognition.searchFacesByImage({
    "CollectionId": config.collectionName,
    "FaceMatchThreshold": 70,
    "Image": { 
        "Bytes": bitmap,
    },
    "MaxFaces": 1
}, function(err, data) {
    if (err) {
        res.send(err);
    } else {
        if(data.FaceMatches && data.FaceMatches.length > 0 && data.FaceMatches[0].Face)
        {
            res.send(data.FaceMatches[0].Face); 
        } else {
            res.send("Not recognized");
        }
      }
  });
});

app.listen(5555, function () {
console.log('Listening on port 5555!');
})

第二通电话

    Dim myHttpWebRequest As HttpWebRequest = DirectCast(HttpWebRequest.Create(uri), HttpWebRequest)

    myHttpWebRequest.Headers.Add("Proxy-Authorization", "Basic dXNlcjE6UGFzc3dvcmQx")

    myHttpWebRequest.Method = "GET"

    myHttpWebRequest.AutomaticDecompression = DecompressionMethods.Deflate Or DecompressionMethods.GZip Or DecompressionMethods.None

    Dim myHttpWebResponse = GetresponseForRequest(myHttpWebRequest)

0 个答案:

没有答案