带Postman的NTLM显示“JSONError | Unexpected token”<'在1:1“

时间:2018-05-11 13:37:39

标签: postman ntlm postman-collection-runner ntlm-authentication

我有脚本通过从CSV文件中获取数据并将JSON响应与POSTMAN中的CSV文件中的数据进行比较来执行API自动化。我有12个场景/迭代要验证,每个场景从CSV文件和JSON响应中发送超过20个数据,比较10个以上的数据。一切都很好。

现在安全功能在代码中实现,因此我必须发送请求并使用ID / PWD自动执行脚本。所以我使用ID和PWD进行NTML身份验证。

当我使用runner运行脚本时,最初的两次迭代给出了完美的响应并且脚本通过了,然后从第三次迭代开始,所有脚本都失败了并且没有得到响应。作为回应,当我在邮递员控制台中检查时,它显示数据不可用,它显示以下详细信息。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>401 - Unauthorized: Access is denied due to invalid credentials.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;} 
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;} 
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} 
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
-->
</style>
</head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
 <div class="content-container"><fieldset>
  <h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2>
  <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>
 </fieldset></div>
</div>
</body>
</html>

解决这个问题的原因和解决办法可能是什么原因。

Screen short

使用带有ID / PWD的NTLM身份验证[BETA]授权选项

以下是传递方案的详细信息

Request Headers:
content-type:"application/json"
cache-control:"no-cache"
user-agent:"PostmanRuntime/7.1.5"
accept:"*/*"
host:"xxxxxx"
accept-encoding:"gzip, deflate"
content-length:599
authorization:"NTLM TlRMTVNTUAADAAAAGAAYAFIAAAAYABgAagAAAAAAAABIAAAACgAKAEgAAAAAAAAAUgAAAAAAAACCAAAABYKIogUBKAoAAAAPUAAzAFcATABJAPxv7ESeMEwAAAAAAAAAAAAAAAAAAAAAAHZECYztsK+qnjG5K0DvDIPzQ09CFXWo0Q=="

Request Body:

Response Headers:
transfer-encoding:"chunked"
content-type:"application/json; charset=utf-8"
location:"xxxxxx/api/rate/zzz"
server:"Kestrel"
persistent-auth:"true"
date:"Wed, 06 Jun 2018 13:40:05 GMT"

Response Body:
rate:5
retailRateAttributes:
error:null

以下是失败方案的详细信息

   Request Headers:
content-type:"application/json"
cache-control:"no-cache"
authorization:"NTLM TlRMTVNTUAADAAAAGAAYAFIAAAAYABgAagAAAAAAAABIAAAACgAKAEgAAAAAAAAAUgAAAAAAAACCAAAABYKIogUBKAoAAAAPUAAzAFcATABJAPxv7ESeMEwAAAAAAAAAAAAAAAAAAAAAAHZECYztsK+qnjG5K0DvDIPzQ09CFXWo0Q=="
user-agent:"PostmanRuntime/7.1.5"
accept:"*/*"
host:""xxxxxx""
accept-encoding:"gzip, deflate"
content-length:599

Request Body:

Response Headers:
content-type:"text/html"
server:"Microsoft-IIS/10.0"
www-authenticate:
0:"Negotiate"
1:"NTLM"
date:"Wed, 06 Jun 2018 13:40:05 GMT"
content-length:"1293"

Response Body:

2 个答案:

答案 0 :(得分:0)

我收到了 Postman 错误消息 JSONError: Unexpected token '<' at 1:1<!doctype html>^ 今天。
我意识到问题(就我而言)是我试图访问一个 API 自己写的,忘记上传了。 - 因此,我尝试调用 API 那并不存在。 (!)

我一上传 API,错误就消失了。

答案 1 :(得分:0)

虽然 Postman 错误不是最具有描述性的错误,但发生此错误的原因通常是您的 API 端点不存在。您可能需要检查您是否正确调用了适当的端点