C# 如何使用用户输入的字符串来补充C中的对象#
所以我使用的是InstaSharper,我想让用户输入他们的目标用户名称,但是,它没有处理数据,只是什么都不做。这是我的密码:C# 如何使用用户输入的字符串来补充C中的对象#,c#,instasharp,C#,Instasharp,所以我使用的是InstaSharper,我想让用户输入他们的目标用户名称,但是,它没有处理数据,只是什么都不做。这是我的密码: class Program { //username and pass #region Hidden #endregion private static UserSessionData user; private static IInstaApi api; static void Main(string[] ar
class Program
{
//username and pass
#region Hidden
#endregion
private static UserSessionData user;
private static IInstaApi api;
static void Main(string[] args)
{
string inputUser;
string inputPass;
Console.WriteLine("Enter the username");
inputUser = Console.ReadLine();
Console.WriteLine("Enter your password:");
inputPass = Console.ReadLine();
user = new UserSessionData();
user.UserName = inputUser;
user.Password = inputPass;
Login();
Console.Read();
}
public static async void Login()
{
//login attempt
api = InstaApiBuilder.CreateBuilder()
.SetUser(user)
.UseLogger(new DebugLogger(LogLevel.Exceptions))
.Build();
var loginRequest = await api.LoginAsync();
if (loginRequest.Succeeded)
{
string targetUser;
Console.WriteLine("Logged in!\n\t");
Console.WriteLine("Now enter the target user");
targetUser = Console.ReadLine();
PullUserPosts(targetUser);
}
else
{
Console.WriteLine("Error logging in, are you sure you have entered the right credentials?");
}
}
public static async void PullUserPosts(string userToScrape)
{
//instagram show followers demo
var userinfo = await api.GetUserInfoByIdAsync(123456789);
Console.WriteLine($"USER: {userinfo.Value.FullName}\n\tFollowers: {userinfo.Value.FollowerCount} \n \t Is it verified?\n\t {userinfo.Value.IsVerified}\n\t\n\t");
Console.WriteLine("Loading all posts and captions by target user.. \n\t");
IResult<InstaMediaList> media = await api.GetUserMediaAsync(userToScrape, PaginationParameters.MaxPagesToLoad(5));
List<InstaMedia> mediaList = media.Value.ToList();
for (int i = 0; i < mediaList.Count; i++)
{
InstaMedia m = mediaList[i];
if (m != null && m.Caption != null)
{
string captionText = m.Caption.Text;
if (captionText != null)
{
if (m.MediaType == InstaMediaType.Image)
{
for (int x = 0; x < m.Images.Count; x++)
{
if (m.Images[x] != null && m.Images[x].URI != null)
{
Console.WriteLine($"\n\t{captionText}\n\t");
string uri = m.Images[x].URI;
Console.Write($"{uri}\n\t");
}
}
}
}
}
}
类程序
{
//用户名和密码
#隐藏区域
#端区
私有静态用户sessiondata用户;
专用静态IInstaApi;
静态void Main(字符串[]参数)
{
字符串输入用户;
字符串输入通道;
Console.WriteLine(“输入用户名”);
inputUser=Console.ReadLine();
Console.WriteLine(“输入密码:”);
inputPass=Console.ReadLine();
user=newusersessiondata();
user.UserName=输入用户;
user.Password=inputPass;
登录();
Console.Read();
}
公共静态异步void登录()
{
//登录尝试
api=InstaApiBuilder.CreateBuilder()
.SetUser(用户)
.UseLogger(新的调试记录器(LogLevel.Exceptions))
.Build();
var loginRequest=wait api.LoginAsync();
如果(loginRequest.successed)
{
字符串目标用户;
Console.WriteLine(“已登录!\n\t”);
WriteLine(“现在输入目标用户”);
targetUser=Console.ReadLine();
PullUserPosts(targetUser);
}
其他的
{
WriteLine(“登录时出错,您确定输入了正确的凭据吗?”);
}
}
公共静态异步void PullUserPosts(字符串userToScrape)
{
//instagram展示粉丝演示
var userinfo=await api.GetUserInfoByIdAsync(123456789);
Console.WriteLine($“用户:{userinfo.Value.FullName}\n\t所有者:{userinfo.Value.FollowerCount}\n\t是否已验证?\n\t{userinfo.Value.IsVerified}\n\t\n\t”);
Console.WriteLine(“按目标用户加载所有帖子和标题..\n\t”);
IResult media=await api.GetUserMediaAsync(userToScrape,PaginationParameters.MaxPagesToLoad(5));
List mediaList=media.Value.ToList();
for(int i=0;i
它成功登录,但当我告诉用户“现在输入目标用户”时,什么也没发生。有人知道如何修复它吗?如果你的代码无效,我会看到几个问题。首先,永远不要执行异步
void
,总是返回异步Task
。其次,你不必在Main中等待你的登录方法。将Main返回从void
更改为Task
,并等待登录
@Olegl谢谢r建议,尽管仍然无法解决问题(如我前面所说,它在用户输入时不做任何操作,只是在编译后自动关闭,在将其设置为调试模式时不做任何操作)。顺便说一下,无法从登录中删除Wait,将弹出一个错误“CS1061'Task'不包含'Successed'的定义,并且找不到接受'Task'类型的第一个参数的可访问扩展方法'Successed'(是否缺少using指令或程序集引用?)