[英]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.