I want to save Image in Database with JSON web service .without image data save.
But when send image byte It is not save. How to send or Recive Image with JSon webservie in window phone-7
My Webservice:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string Register(string emailID, string pwd, string name, string img)
{
ProfileDL _client = new ProfileDL();
_client.Email = emailID;
_client.Password = pwd;
img = img.Replace(' ', '+');
_client.Firstname = name;
_client.Img = Convert.FromBase64String(img);
_client.saveData();
return "Y";
}
WP7 Code:-
//Convert Image to byte code
private void photoChooserTask_Completed(object sender, PhotoResult e)
{
imageBytes = new byte[e.ChosenPhoto.Length];
e.ChosenPhoto.Read(imageBytes, 0, imageBytes.Length);
}
void GetRequestStreamCallbackx(IAsyncResult asynchronousResult)
{
HttpWebRequest webRequest = (HttpWebRequest)asynchronousResult.AsyncState;
// End the stream request operation
Stream postStream = webRequest.EndGetRequestStream(asynchronousResult);
string img = string.Empty;
try
{
img = Convert.ToBase64String(imageBytes);
}
catch { }
// Create the post data
// string postData = "";
var json="";
Dispatcher.BeginInvoke(() => json = "{\"emailID\": " + txtemail.Text.Trim() + ",\"pwd\": " + txtpassword.Text + ",\"name\":" + txtname.Text + ",\"img\": " + img + "}");
byte[] byteArray = Encoding.UTF8.GetBytes(json);
// Add the post data to the web request
try
{
postStream.Write(byteArray, 0, byteArray.Length);
}
catch { }
postStream.Close();
// Start the web request
webRequest.BeginGetResponse(new AsyncCallback(GetResponseCallback), webRequest);
}
there is any thing wrong in my code. Please Help…
Let me guess: an empty request is being made?
If you just use
Dispatcher.BeginInvoke()to set thejsonvariable, it probably will be set after theEncoding.UTF8.GetBytes(json)call!Try it like this: