Send Parameter in Web Service using Post Method

Berikut adalah cara mengirim data melalui web service dengan metode post.

Mengirimkan object

Web service:

[code language=”csharp”]

[HttpPost]
public ServiceResponseStub<ProcurementPresentationStub> GetAll(GridRequestParameters parameter)
{
//kamus
ServiceResponseStub<ProcurementPresentationStub> response = new ServiceResponseStub<ProcurementPresentationStub>();
//EFMemoDeptRepository repo = new EFMemoDeptRepository();
List<Procurement> data;
List<ProcurementPresentationStub> returnData;
List<SGUser> userList;

Business.Infrastructure.FilterInfo filters;

int? take = null;

//algoritma
filters = parameter.Filters;

if (parameter.Take != 0)
take = parameter.Take;

data = RepoProcurement.FindAll(parameter.Skip, take, (parameter.Sortings != null ? parameter.Sortings.ToList() : null), filters);
userList = RepoUser.FindAll();

returnData = ProcurementPresentationStub.MapList(data, userList);

response.status = 200;
response.message = "Success";
response.total = data.Count;
response.data = returnData;

return response;
}

[/code]

Cara memanggil:

[code language=”csharp”]

public List<ProcurementModel> FindAll(int? skip = null, int? take = null, List<SortingInfo> sortings = null, FilterInfo filters = null)
{
//kamus
string baseUrl = ConfigurationManager.AppSettings["SPSURL"];
string serviceUrl = "/api/Procurement/GetAll";
string fullUrl = baseUrl + serviceUrl;
string json = null;
GridRequestParameters param = new GridRequestParameters();
string paramAsString;
List<ProcurementModel> list;
ServiceResponseStub<ProcurementModel> response;

//algoritma
using (var client = new WebClient())
{
param = new GridRequestParameters
{
Skip = (skip.HasValue ? skip.Value : 0),
Take = (take.HasValue ? take.Value : 0),
Sortings = sortings,
Filters = filters
};
paramAsString = new JavaScriptSerializer().Serialize(param);

client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
json = client.UploadString(fullUrl, paramAsString);
response = new JavaScriptSerializer().Deserialize<ServiceResponseStub<ProcurementModel>>(json);
list = response.data;
}

return list;
}

[/code]

Mengirimkan single parameter

Web service:

[code language=”csharp”]

[HttpPost]
public ServiceResponseStub<ProcurementDetailServiceStub> GetDetail([FromBody] int procurementId)
{
//kamus
ServiceResponseStub<ProcurementDetailServiceStub> response = new ServiceResponseStub<ProcurementDetailServiceStub>();
//EFMemoDeptRepository repo = new EFMemoDeptRepository();
Procurement dbItem;
ProcurementDetailServiceStub data;
List<ProcurementDetailServiceStub> returnData;

//algoritma
dbItem = RepoProcurement.FindByPk(procurementId);
data = new ProcurementDetailServiceStub(dbItem);

returnData = new List<ProcurementDetailServiceStub> { data };

response.status = 200;
response.message = "Success";
response.total = 1;
response.data = returnData;

return response;
}

[/code]

Cara memanggil:

[code language=”csharp”]

public ProcurementDetailModel FindDetailByPk(int procurementId)
{
//kamus
string baseUrl = ConfigurationManager.AppSettings["SPSURL"];
string serviceUrl = "/api/Procurement/GetDetail";
string fullUrl = baseUrl + serviceUrl;
string json = null;
GridRequestParameters param = new GridRequestParameters();
string paramAsString;
ProcurementDetailModel data = null;
ServiceResponseStub<ProcurementDetailModel> response;

//algoritma
using (var client = new WebClient())
{
paramAsString = procurementId.ToString();

client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
json = client.UploadString(fullUrl, paramAsString);
response = new JavaScriptSerializer().Deserialize<ServiceResponseStub<ProcurementDetailModel>>(json);
if (response.data != null && response.data.Count() > 0)
{
data = response.data[0];
}
}

return data;
}

[/code]

Chandra Oemaryadi has written 244 articles

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>