-1
A
回答
1
0
我不知道这个目的是否有简单的实现,但你必须根据你的需要编写你自己的解析器,发送器,接收器。我会给你一个小例子:)首先我有一个基类,我一般restCall
public abstract class BaseDto
{
public string Id {get;set;}
}
不是写你的业务对象,如
public class UserDto : BaseDto
{
public string Name {get;set;}
//etc.
}
public class SavedUserDto : BaseDto
{
public int Id {get;set;}
public string Name {get;set;}
//etc.
}
比写一个简单的HTTP调用者
public string Post<T>(string url, T entity) where T : BaseDto
{
//here u will write a HttpClient and send receive json. U can find examples on the net. Of course use Newtonsoft for json convertions
}
比写一个通用的方法来调用这个post方法,当然你会发送一个baseDto并且接收一个baseDto太:) :)
public K Call<T, K>(
string restApiPath,
T entity) where T : BaseDto where K : BaseDto
{
var response = Post(restApiPath, entity);
//you can handle errors, auth faults etc. here.
return JsonConvert.DeserializeObject<K>(response);
}
不是在你的代码只是做
var savedUser = Call<UserDto,SavedUserDto>("127.0.0.1/user/save",new UserDto{Name="John"})
希望它可以给你出个主意。当你在你的rest api上添加一个新的服务方法时,你可以用一行代码来调用它(当然你必须编写新的业务DTO的 - 又名数据传输对象:))
当然,所有这些POST和CALL方法在不同的类上。不要忘记,一个班级只能做一件事。所以POST方法所有者类(我们称之为HttpCaller)只会将Dto发送到服务器并获得答案。 CALL方法所有者类(让我们称之为MyService)将得到resut并处理它。
0
您可以使用HttpClient。这很好。从nuget获得System.Http.Net
1
你可以Microsoft HTTP Client Libraries。
然后,定义一个RestService类,它包含一个HttpClient的例如:
public class RestService : IRestService
{
HttpClient client;
public RestService()
{
client = new HttpClient();
client.MaxResponseContentBufferSize = 256000;
}
// example for GET request
public async Task<List<TodoItem>> RefreshDataAsync()
{
var uri = new Uri(string.Format(Constants.RestUrl, string.Empty));
var response = await client.GetAsync(uri); // make a GET request
if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
// handle response here
}
}
}
您应该按照这篇文章: https://developer.xamarin.com/guides/xamarin-forms/cloud-services/consuming/rest/
相关问题
- 1. REST客户端JAVA
- 2. IObservable REST客户端
- 3. REST JavaScript客户端
- 4. PHP REST客户端
- 5. Parasoft REST客户端
- 6. GWT客户端端rest API
- 7. Xamarin XMPP客户端库
- 8. Redirect_URI Android REST客户端
- 9. C#REST客户端示例?
- 10. hbase rest客户端得到
- 11. 的Android REST客户端
- 12. Jira Rest Java客户端
- 13. C++中的REST客户端
- 14. C#REST API客户端
- 15. WCF REST客户端异常
- 16. JS客户端的REST API
- 17. Yodlee JAVA REST客户端SDK
- 18. C中的REST客户端
- 19. Java MongoDB Rest客户端
- 20. .NET 2.0 Rest客户端
- 21. Symfony2 ReST客户端结构
- 22. 异步REST客户端
- 23. C#REST API客户端Prestashop
- 24. 创建REST客户端API
- 25. JavaScript的REST客户端库
- 26. REST API谷歌表格 - 客户端使用JS
- 27. GET REST客户端上的Android REST客户端未填充文本字段
- 28. Spring RestTemplate与Jersey Rest客户端与RestEasy客户端
- 29. 泽西REST客户端与Apache HTTP客户端4.5与改造
- 30. Jersy Rest客户端到Apache CXF客户端转换
我不会把这些REST客户端,除了改装。 ModernHttpClient和HttpClient就像它们的名字一样,表示HTTP客户端可以调用Internet上的任何HTTP服务,而不限于RESTful服务。 – Cheesebaron
你是对的,不限于RESTful,但他们也是RESTful,所以他们不应该算作REST客户端吗? – apineda
OP正在寻找一个“良好的休息客户”。我会争论一个HTTP客户端不能满足这个(基于观点的),因为它不会让调用RESTful API变得容易。它只是提供运输。 – Cheesebaron