无效的网络服务呼叫

时间:2019-09-02 18:12:58

标签: javascript c# asp.net webservice-client

我有一个可以正常工作的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();
        }
    }
}

0 个答案:

没有答案