2014-07-10 3 views
0

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 

나는 그것이 작동하지 않습니다 URL로 긴 문자열을 전달합니다. 짧은 텍스트 만 전달하면 잘 작동합니다. 왜 그렇게?

+0

Answers를 보유 할 클래스를 만들어 전달하지 않는 이유는 무엇입니까? 또는 'List answers'를 전달 하시겠습니까? – christiandev

+0

ios 앱에서이 서비스를 쉽게 사용하는 것에 대한 @christiandev – 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) 

나는 당신이 점점 문제가 내가 ~ 2000 문자 생각 URL 길이에 대한 제한이라고 생각합니다. 이 SO 게시를 참조하십시오 What is the maximum length of a URL in different browsers?

편집 : 내가 목표 - C에 익숙하지 않은,하지만 난 당신이를 나타내는 JSON 개체를 만드는 것 있으리라 믿고있어 목표 - C 주석

을 바탕으로 CustomerAnswers 클래스를 전달하고 this ... 여기에 예제 질문이 있습니다 Pass object as a parameter to wcf service in Objective C on iOS.

+0

도 이와 같이하고 싶습니다. 어떻게 Objective c의 ios 전화 앱에서이 방법을 사용할 수 있습니까? – pravin

+0

답변을 편집 할 때 추가했습니다. json 객체를 WCF에 게시하는 방법. – christiandev

관련 문제