简体   繁体   English

Node.js中的Mailgun电子邮件验证API

[英]Mailgun Email validation API in Node.js

I'm trying to put in node a curl command I've to use the Mailgun API for email validations, but when I make the request, the api never recognises the 'address' field as when curl does. 我试图将curl命令放入节点,以便使用Mailgun API进行电子邮件验证,但是当我发出请求时,api不会像curl那样识别“地址”字段。

Here are the scripts and results: 以下是脚本和结果:

Curl command 卷曲命令

curl -s --user api:pubkey-5ogiflzbnjrljiky49qxsiozqef5jxp7 -G \
    https://api.mailgun.net/v2/address/validate \
    -d address='john.smith@gmail.com'

Node.js script Node.js脚本

var request = require('request')
  , inspect = require('util').inspect

var options = {
    url: 'https://api.mailgun.net/v2/address/validate'
  , method: 'GET'
  , encoding: 'ASCII'
  // , body: "address=john.smith@gmail.com"
  , form: { address: "john.smith@gmail.com" }
  , auth: {
      username: "api"
    , password: "pubkey-5ogiflzbnjrljiky49qxsiozqef5jxp7"
  }
}
request(options, function (err, result){
  if(err){ console.log(err) }
  console.log(inspect(result.request.body.toString('utf8')))
  console.log(inspect(result.request.response.body))    
})

Expected output 预期产量

{
  "is_valid": true,
  "parts": {
    "local_part": "johnsmith",
    "domain": "gmail.com",
    "display_name": null
  },
  "address": "john.smith@gmail.com",
  "did_you_mean": null
}

Output I get 输出我得到

'address=john.smith%40gmail.com'
'{\n  "message": "Missing parameter: address"\n}'

See https://github.com/mikeal/request#requestoptions-callback . 参见https://github.com/mikeal/request#requestoptions-callback

The form parameter sets the body of the request, but for a GET request, you want to pass parameters on the query string. form参数设置请求的主体,但是对于GET请求,您想在查询字符串上传递参数。 Use the qs parameter instead of form for GET requests: 使用qs参数代替GET请求的form

var request = require('request')
  , inspect = require('util').inspect

var options = {
    url: 'https://api.mailgun.net/v2/address/validate'
  , method: 'GET'
  , qs: {address: 'john.smith@gmail.com'}
  , encoding: 'ASCII'
  , auth: {
      username: "api"
    , password: "pubkey-5ogiflzbnjrljiky49qxsiozqef5jxp7"
  }
}
request(options, function (err, result){
  if(err){ console.log(err) }
  console.log(inspect(result.request.response.body))
})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM