Неверный запрос на странице в фейсбуке (getResponse ()) - PullRequest
0 голосов
/ 26 января 2012

Я получаю код ошибки 400 «Плохой запрос», когда пытаюсь опубликовать сообщение на стене страницы.Вот код:

public string Post(Int64 Id)
{

    using (DataContext db = new DataContext())
    {
        var msg = (from t1 in db.Table1
                   join t2 in db.Table2 on t1.UserId equals t2.UserId
                   where t1.Id == Id
                   select new {t1, t2}).FirstOrDefault();

        var url = "https://graph.facebook.com/" + msg.t2.Table3.FBPageId + "/feed";
        AppendQueryString(ref url, "access_token", msg.t2.Table3.FacebookAuth);
        AppendQueryString(ref url, "privacy", "{\"value\": \"EVERYONE\"}");
        AppendQueryString(ref url, "message", msg.t1.Message);
        var webRequest = WebRequest.Create(url);
        webRequest.ContentType = "application/x-www-form-urlencoded";
        webRequest.Method = "POST";
        byte[] bytes = System.Text.Encoding.ASCII.GetBytes(url);
        webRequest.ContentLength = bytes.Length;
        System.IO.Stream os = webRequest.GetRequestStream();
        os.Write(bytes, 0, bytes.Length);
        os.Close();

        try
        {
            var webResponse = webRequest.GetResponse();
        }
        catch (Exception ex)
        {
            return ex.Stacktrace;
        }

    return "Something random";             
}  

Код заканчивается при возврате в catch (webRequest.GetResponse(); не удалось).

AppendQueryString - это просто метод, который генерирует строку запроса (? Или &) и возвращает новый url.

Я что-то не так делаю?

1 Ответ

0 голосов
/ 01 февраля 2012

Мне пришлось разделить «базовый» URL-адрес и параметры на две части, поместить параметры в byte[] bytes = System.Text.Encoding.ASCII.GetBytes(parameters); и сохранить URL-адрес в var webRequest = WebRequest.Create(url);

Работает сейчас

...