我试图使用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)