簡體   English   中英

基於mailgun api讀取json響應的電子郵件驗證

[英]Email verifiy based on mailgun api reading the json response

我正在嘗試基於 Mailgun API 制作電子郵件驗證器,但我一直在閱讀 json 響應。

這是我的代碼:

  foreach (string str in this.ema.Items)
  {
    HttpWebRequest httpWebRequest = (HttpWebRequest) WebRequest.Create("https://api.mailgun.net/v3/address/validate?api_key=" + this.chei.Text + "&address=" + str);
    httpWebRequest.ContentType = "application/json; charset=utf-8";
    if (new StreamReader(httpWebRequest.GetResponse().GetResponseStream()).ReadToEnd().Contains(" \"mailbox_verification\": true"))
      this.m_oWorker.ReportProgress(percentProgress, (object) str);
    else
      this.m_oWorker.ReportProgress(0, (object) str);
    ++percentProgress;
  }
  this.m_oWorker.ReportProgress(1);
}

這是來自 json 的響應:

{"address": "foo@mailgun.net",
"did_you_mean": null,
"is_disposable_address": false,
"is_role_address": true,
"is_valid": true,
"mailbox_verification": "true",
"parts": {
    "display_name": null,
    "domain": "mailgun.net",
    "local_part": "foo"
}

請注意“mailbox_verification”:“true”周圍的引號,我認為這是我的錯誤,但我不知道如何解決。

可以輕松克服這一問題的一種方法是創建 API 響應模型並使用Newtonsoft.Json將 JSON 字符串反序列化為您的模型。 mailbox_verification將被解析為給定模型中顯示的類型(在本例中為bool ),這將為您提供您所追求的顯式類型。

楷模:

public class MailGunResponse
{
        public string address { get; set; }
        public string did_you_mean { get; set; }
        public bool is_disposable_address { get; set; }
        public bool is_role_address { get; set; }
        public bool is_valid { get; set; }
        public bool mailbox_verification { get; set; } //Make sure it is bool!
        public Parts parts { get; set; }
}


public class Parts
{
        public string display_name { get; set; }
        public string domain { get; set; }
        public string local_part { get; set; }
 }

反序列化:

var json = File.ReadAllText("test.json"); //Change to you JSON string source.
var jsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject<MailGunResponse>(json);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM