-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