Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#TwilioRestClient和nextpageuri进行分页_C#_Twilio - Fatal编程技术网

如何使用C#TwilioRestClient和nextpageuri进行分页

如何使用C#TwilioRestClient和nextpageuri进行分页,c#,twilio,C#,Twilio,我目前正在以以下方式使用TwilioRestClient(这显然是一个循环): 这对我来说很好,但我正在阅读 Page参数已被弃用,可能会在将来的API版本中删除。Page参数比nextpageuri慢,如果在使用Page参数分页时创建新资源,则连续的页可能包含重复的数据 我想开始使用nextpageuri,以防页面在不久的将来贬值 我的问题是如何通过TwilioRestHelper(C#)利用nextpageuri?我找不到这方面的示例,也没有看到任何合适的方法调用来执行此操作。因此,我最终执

我目前正在以以下方式使用TwilioRestClient(这显然是一个循环):

这对我来说很好,但我正在阅读

Page参数已被弃用,可能会在将来的API版本中删除。Page参数比nextpageuri慢,如果在使用Page参数分页时创建新资源,则连续的页可能包含重复的数据

我想开始使用nextpageuri,以防页面在不久的将来贬值


我的问题是如何通过TwilioRestHelper(C#)利用nextpageuri?我找不到这方面的示例,也没有看到任何合适的方法调用来执行此操作。

因此,我最终执行的操作如下所示:

private TwilioRestClient mTwilioClient;
var listRequest = new MessageListRequest()
{
    To = PhoneNumber,
    Count = mMessagesPerPage,
    DateSent = DateTime.Today.Subtract(TimeSpan.FromDays(mDaysToSearch)),
    DateSentComparison = ComparisonType.GreaterThanOrEqualTo,
};
var ret = mTwilioClient.ListMessages(options);

// ret.Messages will now have your first page of messages


// For your next page of results
if (ret.NextPageUri != null)
{
     ret.next_page_uri = ret.NextPageUri.ToString().Substring(11);
}

IRestResponse result = mTwilioClient.Execute(new RestSharp.RestRequest(ret.next_page_uri));
// The classes provided by Twilio do not line up with the fields return in Json for some reason, so we have to massage the data a bit.
result.Content = CleanupJsonContent(result.Content);

// Deserialize the Json content into a class.
var nextRet = JsonConvert.DeserializeObject<TwilioResponse>(result.Content);

// Set the next_page_uri string value. We can't use the Uri class since it doesn't seem to be a valid Uri...
nextRet.next_page_uri = nextRet.NextPageUri.ToString().Substring(11);

private string CleanupJsonContent(string jsonContent)
{
    string ret = jsonContent.Replace("date_sent", "DateSent");
    ret = ret.Replace("account_sid", "AccountSid");
    ret = ret.Replace("date_created", "DateCreated");
    ret = ret.Replace("date_updated", "DateUpdated");
    ret = ret.Replace("num_segments", "NumSegments");
    ret = ret.Replace("api_version", "ApiVersion");
    ret = ret.Replace("price_unit", "PriceUnit");
    ret = ret.Replace("error_code", "ErrorCode");
    ret = ret.Replace("error_message", "ErrorMessage");
    ret = ret.Replace("first_page_uri", "FirstPageUri");
    ret = ret.Replace("previous_page_uri", "PreviousPageUri");
    ret = ret.Replace("page_size", "PageSize");
    ret = ret.Replace("next_page_uri", "NextPageUri");
    ret = ret.Replace("num_pages", "NumPages");
    ret = ret.Replace("last_page_uri", "LastPageUri");

    return ret;
}
private TwilioRestClient mTwilioClient;
var listRequest=new MessageListRequest()
{
To=电话号码,
Count=mMessagesPerPage,
DateSent=DateTime.Today.Subtract(TimeSpan.FromDays(mDaysToSearch)),
DateSentComparison=ComparisonType.GreaterThanOrEqualTo,
};
var ret=mTwilioClient.ListMessages(选项);
//ret.消息现在将有您的第一页消息
//查看下一页的结果
if(ret.NextPageUri!=null)
{
ret.next_page_uri=ret.NextPageUri.ToString().Substring(11);
}
IRestResponse result=mTwilioClient.Execute(new RestSharp.RestRequest(ret.next_page_uri));
//由于某些原因,Twilio提供的类与Json中返回的字段不一致,因此我们必须稍微调整一下数据。
result.Content=CleanupJsonContent(result.Content);
//将Json内容反序列化为类。
var nextRet=JsonConvert.DeserializeObject(result.Content);
//设置下一个\u页面\u uri字符串值。我们无法使用Uri类,因为它似乎不是有效的Uri。。。
nextRet.next_page_uri=nextRet.NextPageUri.ToString().Substring(11);
私有字符串清理jsonContent(字符串jsonContent)
{
string ret=jsonContent.Replace(“date_sent”,“DateSent”);
ret=ret.Replace(“账户sid”、“账户sid”);
ret=ret.Replace(“创建日期”、“创建日期”);
ret=ret.Replace(“更新日期”、“更新日期”);
ret=ret.Replace(“num_段”、“NumSegments”);
ret=ret.Replace(“api_版本”、“ApiVersion”);
ret=ret.Replace(“价格单位”、“价格单位”);
ret=ret.Replace(“错误代码”、“错误代码”);
ret=ret.Replace(“错误消息”、“错误消息”);
ret=ret.Replace(“first_page_uri”,“FirstPageUri”);
ret=ret.Replace(“上一页uri”、“上一页uri”);
ret=ret.Replace(“页面大小”、“页面大小”);
ret=ret.Replace(“下一页uri”,“下一页uri”);
ret=ret.Replace(“num_pages”,“NumPages”);
ret=ret.Replace(“最后一页”、“最后一页”);
返回ret;
}

现在快速查看之后,我在当前源代码中看不到nextpageuri等的值当前正在使用,或者该功能已经实现。基于这一点,我的猜测是,现在,你不能利用官方图书馆来实现你所追求的。@DanDorey几年后,我们到了这里,我刚刚意识到,我也不知道如何使用C#Rest客户端检索多页数据。你最后做了什么?
private TwilioRestClient mTwilioClient;
var listRequest = new MessageListRequest()
{
    To = PhoneNumber,
    Count = mMessagesPerPage,
    DateSent = DateTime.Today.Subtract(TimeSpan.FromDays(mDaysToSearch)),
    DateSentComparison = ComparisonType.GreaterThanOrEqualTo,
};
var ret = mTwilioClient.ListMessages(options);

// ret.Messages will now have your first page of messages


// For your next page of results
if (ret.NextPageUri != null)
{
     ret.next_page_uri = ret.NextPageUri.ToString().Substring(11);
}

IRestResponse result = mTwilioClient.Execute(new RestSharp.RestRequest(ret.next_page_uri));
// The classes provided by Twilio do not line up with the fields return in Json for some reason, so we have to massage the data a bit.
result.Content = CleanupJsonContent(result.Content);

// Deserialize the Json content into a class.
var nextRet = JsonConvert.DeserializeObject<TwilioResponse>(result.Content);

// Set the next_page_uri string value. We can't use the Uri class since it doesn't seem to be a valid Uri...
nextRet.next_page_uri = nextRet.NextPageUri.ToString().Substring(11);

private string CleanupJsonContent(string jsonContent)
{
    string ret = jsonContent.Replace("date_sent", "DateSent");
    ret = ret.Replace("account_sid", "AccountSid");
    ret = ret.Replace("date_created", "DateCreated");
    ret = ret.Replace("date_updated", "DateUpdated");
    ret = ret.Replace("num_segments", "NumSegments");
    ret = ret.Replace("api_version", "ApiVersion");
    ret = ret.Replace("price_unit", "PriceUnit");
    ret = ret.Replace("error_code", "ErrorCode");
    ret = ret.Replace("error_message", "ErrorMessage");
    ret = ret.Replace("first_page_uri", "FirstPageUri");
    ret = ret.Replace("previous_page_uri", "PreviousPageUri");
    ret = ret.Replace("page_size", "PageSize");
    ret = ret.Replace("next_page_uri", "NextPageUri");
    ret = ret.Replace("num_pages", "NumPages");
    ret = ret.Replace("last_page_uri", "LastPageUri");

    return ret;
}