私は初心者で、winformアプリケーションを作成しています。シンプルなCRUD操作にはAPIを使用する必要があります。クライアントはAPIを共有しており、JSON形式でデータを送信するように依頼しました。
API: http://blabla.com/blabla/api/login-valida
キー:「HelloWorld」
値:{"email": "[email protected]"、 "password": "123456"、 "time": "2015-09-22 10:15:20"}
応答:Login_id
データをJSONに変換し、POSTメソッドを使用してAPIを呼び出して応答を取得するにはどうすればよいですか?
[〜#〜] edit [〜#〜]stackoverflowのどこかでこの解決策を見つけました
public static void POST(string url, string jsonContent)
{
url="blabla.com/api/blala" + url;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(baseURL);
request.Method = "POST";
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
Byte[] byteArray = encoding.GetBytes(jsonContent);
request.ContentLength = byteArray.Length;
request.ContentType = @"application/json";
using (Stream dataStream = request.GetRequestStream())
{
dataStream.Write(byteArray, 0, byteArray.Length);
}
long length = 0;
try
{
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
length = response.ContentLength;
}
}
catch
{
throw;
}
}
//on my login button click
private void btnLogin_Click(object sender, EventArgs e)
{
CallAPI.POST("login-validate", "{ \"email\":" + txtUserName.Text + " ,\"password\":" + txtPassword.Text + ",\"time\": " + DateTime.Now.ToString("yyyy-MM-dd h:mm tt") + "}");
}
「リモートサーバーがエラーを返しました:(404)Not Found」という例外を受け取りました。
あなたは見てみることができます
最初に必要なことは、Web APIクライアントライブラリのインストールです。
[ツール]メニューから[ライブラリパッケージマネージャー]を選択し、[パッケージマネージャーコンソール]を選択します。 [パッケージマネージャーコンソール]ウィンドウで、次のコマンドを入力します。
Install-Package Microsoft.AspNet.WebApi.Client
次に、このような投稿リクエストを送信します
// HTTP POST
var gizmo = new Product() { Name = "Gizmo", Price = 100, Category = "Widget" };
response = await client.PostAsJsonAsync("api/products", gizmo);
if (response.IsSuccessStatusCode)
{
// Get the URI of the created resource.
Uri gizmoUrl = response.Headers.Location;
}
次のライブラリを使用するだけです。
https://www.nuget.org/packages/RestSharp
GitHubプロジェクト: https://github.com/restsharp/RestSharp
サンプルコード::
public Customer GetCustomerDetailsByCustomerId(int id)
{
var client = new RestClient("http://localhost:3000/Api/GetCustomerDetailsByCustomerId/" + id);
var request = new RestRequest(Method.GET);
request.AddHeader("X-Token-Key", "dsds-sdsdsds-swrwerfd-dfdfd");
IRestResponse response = client.Execute(request);
var content = response.Content; // raw content as string
dynamic json = JsonConvert.DeserializeObject(content);
JObject customerObjJson = jsonData.CustomerObj;
var customerObj = customerObjJson.ToObject<Customer>();
return customerObj;
}