首页 > 解决方案 > 如何将此 Ajax Post 请求转换为 C#

问题描述

我正在用 c# 制作一个项目,以从任何 facebook URL 获取 facebook ID。我的 API 可以提供帮助,但代码正在使用此 Ajax POST 代码:

        // get facebook id
    $('#get-facebook-id').submit(function(event) {

        $('#answer').html("<b>Working for you...</b>");

        $.ajax({
            type: 'POST',
            url: 'https://codeofaninja.com/tools/get-facebook-id-answer.php',
            data: $(this).serialize()
        })
        .done(function(data){
            $('#answer').html(data);
            $('#page_url_tb').val('')
        })
        .fail(function() {
            alert( "Posting failed. Please try again." );
        });

        return false;
    });

我正在尝试编写自己的代码,但给了我一个错误。我的代码和我的错误在下面。

private string getFbAccountID(string facebookurl)
    {
        var request = (HttpWebRequest)WebRequest.Create("https://codeofaninja.com/tools/get-facebook-id-answer.php");

        var postData = "page_url="+facebookurl;
        var data = Encoding.ASCII.GetBytes(postData);

        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = data.Length;

        using (var stream = request.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }

        var response = (HttpWebResponse)request.GetResponse();

        var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
        return responseString;
    }

错误:

    <br />
<b>Notice</b>:  Undefined index: page_url in <b>/home/100661.cloudwaysapps.com/rpxdhcedbx/public_html/tools/get-facebook-id-answer.php</b> on line <b>3</b><br />
<br />
<b>Notice</b>:  Undefined offset: 1 in <b>/home/100661.cloudwaysapps.com/rpxdhcedbx/public_html/tools/get-facebook-id-answer.php</b> on line <b>19</b><br />
<p>There was an error. Please try a different input.</p>

这总是给我这个错误。我希望有人可以帮助我

标签: c#ajax

解决方案


在这里,您有一个使用 System.Net.WebClient 的替代方案,它将使您的代码更精简:

private string getFbAccountID(string facebookurl)
{
    using (var webClient = new System.Net.WebClient())
    {
        var formValues = new System.Collections.Specialized.NameValueCollection
        {
            { "page_url", facebookurl }
        };

        var responseBytes = webClient.UploadValues(
            "https://codeofaninja.com/tools/get-facebook-id-answer.php",
            formValues
            );

        return System.Text.Encoding.UTF8.GetString(responseBytes);
    }
}

推荐阅读