我有一个可以正常工作的Web服务,我从JS打电话。 从测试控制台应用程序调用它时,出现错误:
InvalidOperationException:无效的Web服务调用,预期的路径信息为/ js / {Method>'。编辑器不喜欢在方法之前打开lt符号。
我正在尝试查看缺少的内容。我正在传递一个json字符串。 这是我第一次使用HTTPClient。 谢谢 雅培
// This is the js setup logic
function kboLoadImages() {
var isbn = $("#kboIsbnValue").val();
var ajaxCallParams = new KboAjaxCallParams(_kboVerifyStoreImagesOnServer,
_kboVerifyStoreImagesOnServer);
ajaxCallParams.Data = isbn;
kbo_JsonQuery(_kboAjaxBaseUrl, _kboVerifyStoreImagesOnServer,
ajaxCallParams, _kboBlockWindowClose);
}
// The service call
function kbo_JsonQuery(url, method, ajaxCallParams, allowWindowClose) {
if (_kboAjaxIsActive) return; // prevent double clicks - racing
_kboAjaxIsActive = true;
var jsonString = "{ 'ajaxCallParams': " + JSON.stringify(ajaxCallParams) + " }";
var myUrl = url + method;
//kbo_showModalOverlay();
$.ajax({
type: "POST",
url: myUrl,
data: jsonString,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: allowWindowClose, //blocks window close
success: kbo_Success,
error: kbo_Error
});
}
// The console call
static string CallWebAPI(string isbn)
{
var _kboAjaxBaseUrl = "KboAjaxBase.asmx/";
var _kboVerifyStoreImagesOnServer = "VerifyStoreImagesOnServer";
var uri = "https://kidsbookoutlet.com/";
using (var client = new HttpClient())
{
var ajaxCallParams = new AjaxCallParams();
ajaxCallParams.PageType = _kboVerifyStoreImagesOnServer;
ajaxCallParams.Request = _kboVerifyStoreImagesOnServer;
ajaxCallParams.Data = isbn;
client.BaseAddress = new Uri(uri + _kboAjaxBaseUrl);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent(ajaxCallParams.GetState(), Encoding.UTF8, "application/json");
var response = client.PostAsync(client.BaseAddress, content).Result;
var responseText = response.Content.ReadAsStringAsync().Result;
AjaxCallParams returnParams = JsonConvert.DeserializeObject<AjaxCallParams>(response.Content.ReadAsStringAsync().Result);
return returnParams.Data.ToString();
}
}
}