Я использую API Gmail для чтения электронной почты. код работает нормально при работе в частной сети, но не работает при работе в корпоративной сети из-за прокси.
private static string[] Scopes = { GmailService.Scope.MailGoogleCom };
private static string ApplicationName = "Gmail API .NET Quickstart";
private static void Main(string[] args)
{
UserCredential credential;
using (var stream =
new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
string credPath = "token.json";
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
Console.WriteLine("Credential file saved to: " + credPath);
}
// Create Gmail API service.
var service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
var inboxlistRequest = service.Users.Messages.List("me");
inboxlistRequest.LabelIds = "INBOX";
inboxlistRequest.IncludeSpamTrash = false;
//get our emails
var emailListResponse = inboxlistRequest.Execute();
if (emailListResponse != null && emailListResponse.Messages != null)
{
//loop through each email and get what fields you want...
foreach (var email in emailListResponse.Messages)
{
var emailInfoRequest = service.Users.Messages.Get("me", email.Id);
var emailInfoResponse = emailInfoRequest.Execute();
if (emailInfoResponse != null)
{
String from = "";
String date = "";
String subject = "";
string emailbody = emailInfoResponse.Snippet.Replace(" ", "");
Console.WriteLine(emailbody);
//loop through the headers to get from,date,subject, body
foreach (var mParts in emailInfoResponse.Payload.Headers)
{
if (mParts.Name == "Date")
{
date = mParts.Value;
}
}
}
}
}
Console.ReadLine();
}
Я пробовал следовать xml в app.config, но безуспешно.
<system.net>
<defaultProxy>
<proxy
proxyaddress="my proxy and port"
/>
</defaultProxy>
</system.net>
Я посмотрел на свойство httpclientfactory в gmailService, но не знаю, как его использовать. Могу ли я узнать, какие изменения я могу сделать в приведенном выше коде, чтобы я мог запустить это через прокси.