3
我對Android和WCF都很新穎。我正在使用SQL Server數據庫中的一個非常小的圖像用戶表作爲varbinary。在我的服務,我有以下OperationContract的:Android從WCF Rest服務獲取圖片
[OperationContract]
[WebGet(UriTemplate = "users/{emailAddress}/Image", ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare)]
System.IO.Stream GetImage(string emailAddress);
實現:
public System.IO.Stream GetImage(string emailAddress)
{
//parse personID, call DB
string query = "Select profilePic from Flows_Users WHERE emailAddress= @emailAddress";
SqlConnection objConnection = new SqlConnection();
DataSet ObjDataset = new DataSet();
SqlDataAdapter objAdapater = new SqlDataAdapter();
SqlCommand objCommand = new SqlCommand(query, objConnection);
objCommand.Parameters.Add("emailAddress", SqlDbType.NVarChar).Value = emailAddress;
objConnection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnStr"].ToString();
objConnection.Open();
byte[] pic = (byte[])objCommand.ExecuteScalar();
objConnection.Close();
// if (pic == null)
// return null;
OutgoingWebResponseContext context = WebOperationContext.Current.OutgoingResponse;
// //if (image_not_found_in_DB)
// //{
// // context.StatusCode = System.Net.HttpStatusCode.Redirect;
// // context.Headers.Add(System.Net.HttpResponseHeader.Location, url_of_a_default_image);
// // return null;
// //}
//// everything is OK, so send image
context.Headers.Add(System.Net.HttpResponseHeader.CacheControl, "public");
context.ContentType = "image/jpeg";
// context.LastModified = date_image_was_stored_in_database;
context.StatusCode = System.Net.HttpStatusCode.OK;
return new System.IO.MemoryStream(pic);
}
有沒有辦法讀入一個Android圖片看?我無法使用base64 JSON方式,因爲每次我嘗試將它放入JSONArray時,字符串都會終止。
任何幫助,將不勝感激,我一直在這個星期六以來的工作。