我有一些c#api控制器,它们是当前的get()方法。我想将它们全部转换为帖子。 在JavaScript方面,我可以看到它相当直接,但需要一些主要在c#中的指导。
这是我在c#中的当前get()方法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web.Http;
using DynAggrClient;
namespace theapi.Controllers
{
public class dimController : ApiController
{
// GET api/dim/?sid=SID&values=T/F
//
public HttpResponseMessage Get()
{
string sid = UrlUtil.getParam(this, "sid", "");
int returnValues = 0;
if (UrlUtil.getParam(this, "values", "F") == "T" )
returnValues = 1;
string resp = DynAggrClientAPI.dimRequest(sid, returnValues );
var response = Request.CreateResponse(HttpStatusCode.OK);
response.Content = new StringContent(resp, Encoding.UTF8, "application/json");
return response;
}
}
}

和我目前的前端http电话:
function getDimensionsFromServer() {
// fetch Dimensions list form server;
var rageVars = $rootScope.rageSessionVars;
var returnValues = true;
var url = "http://" + rageVars.domainName + ":" + rageVars.port + "/api/dim?sid=" + rageVars.sessionID + "&values=" + returnValues;
var deferred = $q.defer();
deferred.notify("Getting Dimensions...");
$http({
method: 'GET',
encoding: 'JSON',
headers: {
'Access-Control-Allow-Origin': 'true'
},
withCredentials: true,
url: url
}).success(function (data, status, headers, config) {
var retval = data;
deferred.resolve(retval);
});
return deferred.promise;
}

根据我目前在JavaScript方面的研究,我的http帖子请求看起来应该是这样的:
var sid = 'abf843945b6';
var url = 'http://localhost/api/dim';
var req = {
method: 'POST',
url: url,
headers: {
'Content-Type': undefined
},
data: { sid: sid },
}
$http(req).success(function(data, status, headers, config){
}).error(function (data, status, headers, config) {
});

但是我需要有关如何将c#get()方法转换为post()的进一步建议。
提前致谢,
鲍勃
答案 0 :(得分:0)
[System.Web.Http.HttpPost]
public class dimController : ApiController
{
// GET api/dim/?sid=SID&values=T/F
//
public HttpResponseMessage Post()
{
string sid = Request.Form["sid"];
int returnValues = 0;
if (Request.Form["values"] == "T" )
returnValues = 1;
string resp = DynAggrClientAPI.dimRequest(sid, returnValues );
var response = Request.CreateResponse(HttpStatusCode.OK);
response.Content = new StringContent(resp, Encoding.UTF8, "application/json");
return response;
}
}