Проблема с HttpWebRequest и публикацией URL, содержащего значения - PullRequest
0 голосов
/ 21 апреля 2011

Я пытаюсь опубликовать URL-адрес, который выглядит примерно так: «http://domain.com/api/?application_id=user&format=json&session_token=1824dsf1u312asd14"

Я использую вышеуказанное в качестве URL-адреса запроса и записываю свои данные в поток следующим образом:

byte[] ByteQuery = Encoding.UTF8.GetBytes(post_body);
httpWebRequest.ContentLength = ByteQuery.Length;
Stream QueryStream = httpWebRequest.GetRequestStream();
QueryStream.Write(ByteQuery, 0, ByteQuery.Length);
QueryStream.Close();

Все нормально, веб-страница без проблем получает данные. Проблема в том, что он возвращает ошибку, подобную этой:

{"stat": "fail", "диагностика": "0 2.6 25.22", "error": {"code": 6, метод "message": "(usermgmt.add) не может изменить application_id на (user ) в том же запросе, когда установлено значение (null-app). "}}

Итак, мой вопрос: как мне обработать отправку данных на эту страницу? application_id должен быть установлен для достижения желаемых результатов. Я также попытался отправить его через RequestStream безрезультатно.

Мои данные в виде строки выглядят так:

Метод = usermgmt.add & uid_to_add = 5452007164 & api_signature = & дорожки = H40alhZWzp

Запрос, который я пытаюсь повторить: http://pastebin.com/c38Cq3AR

1 Ответ

0 голосов
/ 21 апреля 2011

Попробуйте это:

using System.IO;
using System.Net;
using System.Text;
using System.Collections.Specialized;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var values = new NameValueCollection();
            values.Add("method", "usermgmt.add");
            values.Add("uid_to_add", "5452007164");
            values.Add("api_signature", "");
            values.Add("track", "H40alhZWzp");

            var wc = new WebClient();
            wc.Headers.Add(HttpRequestHeader.Cookie, "a=b&c=d");
            wc.Headers.Add(HttpRequestHeader.Referer, "http://www.tagged.com/meetme.html");

            var returnBytes = wc.UploadValues("http://domain.com/api/?application_id=user&format=json&session_token=1824dsf1u312asd14", values);
            var returnJson = Encoding.UTF8.GetString(returnBytes);
        }
    }
}

Вы все еще получаете тот же ответ?

РЕДАКТИРОВАТЬ: возможно, здесь учитываются файлы cookie и / или реферер? Если так, я добавил их в код ...

...