2014-07-10 25 views
0

我開發了一個Web服務,用於使用wcf post方法從移動應用程序中將數據存儲在數據庫中。以下是我用來將數據保存在數據庫中的方法。wcf的POST方法有時不會在服務器上發送數據?

public void AddBook3(string Ans3, string Ans4, string Ans5, string Ans6, string Ans7, string Ans8, string Ans9, string Ans10, string Ans11, string Ans12,string customername) 
{   
    server = "localhost"; 
    database = "Feed"; 
    uid = "root"; 
    string message; 
    // password = "password"; 
    mySqlConnection = new MySql.Data.MySqlClient.MySqlConnection(); 

    mySqlConnection.ConnectionString = "SERVER=" + server + ";" + "DATABASE=" + 
      database + ";" + "UID=" + uid + ";"; 
    mySqlConnection.Open(); 

    MySqlCommand cmd = new MySqlCommand("insert into answers(ans3,ans4,ans5,ans6,ans7,ans8,ans9,ans10,ans11,ans12,customername)            values(@ans3,@ans4,@ans5,@ans6,@ans7,@ans8,@ans9,@ans10,@ans11,@ans12,@customername)", mySqlConnection); 

    cmd.Parameters.AddWithValue("@ans3", Ans3); 
    cmd.Parameters.AddWithValue("@ans4", Ans4); 
    cmd.Parameters.AddWithValue("@ans5", Ans5); 
    cmd.Parameters.AddWithValue("@ans6", Ans6); 
    cmd.Parameters.AddWithValue("@ans7", Ans7); 
    cmd.Parameters.AddWithValue("@ans8", Ans8); 
    cmd.Parameters.AddWithValue("@ans9", Ans9); 
    cmd.Parameters.AddWithValue("@ans10", Ans10); 
    cmd.Parameters.AddWithValue("@ans11", Ans11); 
    cmd.Parameters.AddWithValue("@ans12", Ans12); 
    cmd.Parameters.AddWithValue("@customername", customername); 
    int result = cmd.ExecuteNonQuery(); 
    if (result == 1) 
    { 
     // message = userinfo.Id + "user info inserteddd"; 
    } 
    else 
    { 
     // message = userinfo.Id + "information not insertedd"; 
    } 
} 

以下是經營合同:

[OperationContract] 
     [WebInvoke(UriTemplate = "AddBook3/{Ans3}/{Ans4}/{Ans5}/{Ans6}/{Ans7}/{Ans8}/{Ans9}/{Ans10}/{Ans11}/{Ans12}/{customername}")] 
     void AddBook3(string Ans3, string Ans4, string Ans5, string Ans6, string Ans7, string Ans8, string Ans9, string Ans10, string Ans11, string Ans12, string customername); 

而我的參數,這個URL如下:

http://localhost:80/IBookService.svc/AddBook/Morning$(7am-11am),/Set$Top$Box$or$Chatri$Connection/3/3/3424324,234234,24234,23423,/Diya$Aur$Baati,Sapne$Suhane$Ladakpan$Ke,Jodha$Akbar,Tumhari$Pakhi,Ek$Nayi$Pehaan,Yeh$Rishsta$Kya$Kehlata$Hai,Crime$Patrol,Taarak$Mehta,Sasural$Simar$Ka,---,---,---,---,---,---,---,---,---,/Suraj-Sandhya,Jodha-Akbar,Gopi-Ahem,Ishita-$-$Raman,Rachana$-$Gunjan,Akshara$-$Naitik,/234234/rtertert/pnme 

當我經過一長串網址將無法正常工作。當我通過簡短的文本,然後它工作正常!爲什麼這樣?

+0

爲什麼你不創建一個類來容納答案,並通過?或通過一個'列表答案'? – christiandev

+0

@christiandev在iOS應用 – pravin

回答

1

我會改變這類似:

public void AddBook3(List<string> answers ,string customername) 

或創建一個類,如:

public class CustomerAnswers 
{ 
    public string CustomerName {get;set;} 
    public string Answer1 {get;set;} 
    public string Answer2 {get;set;} 
    .... 
} 

和這個類傳遞給服務。

public void AddBook3(CustomerAnswers customerAnswers) 

我覺得你得到的問題是URL的長度,我認爲這是〜2000字符的限制。看到這個SO發佈What is the maximum length of a URL in different browsers?

編輯:基於Objective-C的評論

我不熟悉Objective-C的,但我假設你想創建一個JSON對象,表示CustomerAnswers班,並通過這個...這裏有一個示例問題Pass object as a parameter to wcf service in Objective C on iOS

+0

容易消耗這項服務,我也想做到這樣,但我怎麼能消耗的目標C – pravin

+0

iOS手機應用這個方法我增加了一個編輯答案,這對一個鏈接如何發佈json對象到WCF。 – christiandev

相關問題