2012-01-26 71 views
0

我得到一個錯誤代碼400「錯誤的請求」當我試圖張貼到網頁牆上。下面的代碼:壞請求(GETRESPONSE())

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";    
} 

的代碼在抓回報(webRequest.GetResponse();失敗)結束。

AppendQueryString只是一種生成查詢字符串(?或&)並返回新的url的方法。

我做錯了什麼?

回答

0

我不得不「基地」 URL和參數分成兩個,並把參數爲byte[] bytes = System.Text.Encoding.ASCII.GetBytes(parameters);,保持網址var webRequest = WebRequest.Create(url);

作品現在