Rabu, 20 Mei 2015

Windows Phone 8.0: How to post Multipart Data (Text & Image) to a web service (C#-Xaml)

Introduction:

Hi guys I hope all you guys are doing well?. After a long break I am writing this post on my blog and i am really says sorry to my dear visitors, due to my busy work last two months i was not active in my blog. However this post will be explain about 'Multi Part post to webservice in windows phone 8.0' .

This article has following steps:
  •  Read in the byte array contents of the file ( If we are trying to post image to server ) 
  •  Construct the request in the form of dictionary objects ( For both string parameters and image type)
  •  Set up the request message headers /content type
  •  Set the Multipart content of the request 
  •  Send the request to the web service & get the response

Requirements:

  • This sample is targeted on silverlight windowsphone 8.0 OS

Description: 

Okay,lets follow above steps to post multipart data to server .

Step 1:
Open Visual Studio and create new project name (Ex: "MultiPartDataWP8"). And add following xaml code in MainPage.xaml page.

  <Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock Text="Post Multipart to a WebService" FontSize="25"/>
</StackPanel>
<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>

<TextBlock Text="Name :" Grid.Row="0" VerticalAlignment="Center"/>
<TextBox Name="tbxName" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Stretch" TextWrapping="Wrap"/>

<TextBlock Text="Website :" Grid.Row="1" VerticalAlignment="Center"/>
<TextBox Name="tbxWebsite" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Stretch" TextWrapping="Wrap"/>

<TextBlock Text="Profile Image" Grid.Row="2" VerticalAlignment="Center"/>
<Button Name="BtnChooseImage" Grid.Row="2" Grid.Column="1" HorizontalAlignment="Stretch" Content="Choose Image" Click="BtnChooseImage_Click"/>
<Image Name="imgProfile" Grid.Row="3" Grid.Column="1" HorizontalAlignment="Stretch"/>

</Grid>

<Button Name="BtnSubmit" Grid.Row="2" Grid.Column="1" Content="Submit" Click="BtnSubmit_Click"/>
<TextBlock Grid.Row="3" VerticalAlignment="Bottom" HorizontalAlignment="Right" Margin="0,0,10,12">
<Run Text="SubramanyamRaju WindowsPhone Tutorials"/>
<LineBreak></LineBreak>
<Run Text="http://bsubramanyamraju.blogspot.com/"/>
</TextBlock>
</Grid>

Press 'F5' to run the application, and screen should be launch as like below:


Step 2: Read in the byte array contents of the file
If we want to upload image to server, first we need to get image from gallery and covert it to array of bytes. So from above UI when we press on 'Choose Image' button will redirect to gallery for choosing photo.

 BitmapImage ObjBmpImage = new BitmapImage(); 
private void BtnChooseImage_Click(object sender, RoutedEventArgs e)
{
PhotoChooserTask photoChooserTask;
photoChooserTask = new PhotoChooserTask();
photoChooserTask.Completed += new EventHandler<PhotoResult>(photoChooserTask_Completed);
photoChooserTask.ShowCamera = true;
photoChooserTask.Show();
}

void photoChooserTask_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
//Code to display the photo on the page in an image control named myImage.
isImageUpload = true;
ObjBmpImage.SetSource(e.ChosenPhoto);
imgProfile.Source = ObjBmpImage;
}
}

Below method is for converting our global bitmap object to array of bytes.And this method is useful in next  future steps.

 public byte[] ImageToArray(BitmapImage image) 
{
WriteableBitmap wbmp = new WriteableBitmap(image);
MemoryStream ms = new MemoryStream();

wbmp.SaveJpeg(ms, wbmp.PixelWidth, wbmp.PixelHeight, 0, 100);
return ms.ToArray();

}

Step 3: Construct the request in the form of dictionary objects
 

public void DataUpload(BitmapImage image) 
{
// Generate post objects
Dictionary<string, object> postParameters = new Dictionary<string, object>();

//String parameters
postParameters.Add("Name", tbxName);
postParameters.Add("Website", tbxWebsite);

//Image parameter
if (isImageUpload)
{
bytesImg = ImageToArray(image);
byte[] data = bytesImg;
postParameters.Add("imgProfile", new FileParameter(data, "leak_image.png", "image/png"));
}

MultipartFormDataPost("WEBSERVICE URL", postParameters);// You should be replace your webservice url here.

}

Note: Please replace your webservice URL in above method.
Step 4: Set up the request message headers/content type

Make sure to mention proper content type before requesting to server.

public void MultipartFormDataPost(string postUrl, Dictionary<string, object> postParameters) 
{
string formDataBoundary = String.Format("----------{0:N}", Guid.NewGuid());
string contentType = "multipart/form-data; boundary=" + formDataBoundary;

byte[] formData = GetMultipartFormData(postParameters, formDataBoundary);

PostForm(postUrl, contentType, formData);
}

Step 5: Set the Multipart content of the request

private static byte[] GetMultipartFormData(Dictionary<string, object> postParameters, string boundary) 
{

Stream formDataStream = new System.IO.MemoryStream();
bool needsCLRF = false;
try
{
foreach (var param in postParameters)
{
// Thanks to feedback from commenters, add a CRLF to allow multiple parameters to be added.
// Skip it on the first parameter, add it to subsequent parameters.
if (needsCLRF)
formDataStream.Write(encoding.GetBytes("\r\n"), 0, encoding.GetByteCount("\r\n"));

needsCLRF = true;

if (param.Value is FileParameter)
{
FileParameter fileToUpload = (FileParameter)param.Value;

// Add just the first part of this param, since we will write the file data directly to the Stream
string header = string.Format("--{0}\r\nContent-Disposition: form-data; name=\"{1}\"; filename=\"{2}\"\r\nContent-Type: {3}\r\n\r\n",
boundary,
param.Key,
fileToUpload.FileName ?? param.Key,
fileToUpload.ContentType ?? "application/octet-stream");

formDataStream.Write(encoding.GetBytes(header), 0, encoding.GetByteCount(header));

// Write the file data directly to the Stream, rather than serializing it to a string.
formDataStream.Write(fileToUpload.File, 0, fileToUpload.File.Length);
}
else
{
string postData = string.Format("--{0}\r\nContent-Disposition: form-data; name=\"{1}\"\r\n\r\n{2}",
boundary,
param.Key,
param.Value);
formDataStream.Write(encoding.GetBytes(postData), 0, encoding.GetByteCount(postData));
}
}

// Add the end of the request. Start with a newline
string footer = "\r\n--" + boundary + "--\r\n";
formDataStream.Write(encoding.GetBytes(footer), 0, encoding.GetByteCount(footer));
}
catch (Exception)
{
throw new Exception("Network Issue");
}
// Dump the Stream into a byte[]
formDataStream.Position = 0;
byte[] formData = new byte[formDataStream.Length];
formDataStream.Read(formData, 0, formData.Length);
formDataStream.Close();
return formData;
}

Step 6: Send the request to the web service & get response

private void PostForm(string postUrl, string contentType, byte[] formData) 
{
HttpWebRequest httpWebRequest = WebRequest.Create(postUrl) as HttpWebRequest;

if (httpWebRequest == null)
{
throw new NullReferenceException("request is not a http request");
}

// Set up the request properties.
httpWebRequest.Method = "POST";
httpWebRequest.ContentType = contentType;
httpWebRequest.CookieContainer = new CookieContainer();
httpWebRequest.ContentLength = formData.Length;
httpWebRequest.BeginGetRequestStream((result) =>
{
try
{
HttpWebRequest request = (HttpWebRequest)result.AsyncState;
using (Stream requestStream = request.EndGetRequestStream(result))
{
requestStream.Write(formData, 0, formData.Length);
requestStream.Close();
}
request.BeginGetResponse(a =>
{
try
{
var response = request.EndGetResponse(a);
var responseStream = response.GetResponseStream();
using (var sr = new StreamReader(responseStream))
{
using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))
{
string responseString = streamReader.ReadToEnd();

if (!string.IsNullOrEmpty(responseString))
{
Dispatcher.BeginInvoke(() =>
{
MessageBox.Show("Your data is successfully submitted!");
});
}
else
{
Dispatcher.BeginInvoke(() => MessageBox.Show("Error in data submission!"));
}

}
}
}
catch (Exception ex)
{
Dispatcher.BeginInvoke(() =>
{
MessageBox.Show("Error in data submission!");
});
}
}, null);
}
catch (Exception)
{

MessageBox.Show("Error in data submission!");
}
}, httpWebRequest);

isImageUpload = false;
}

  


 MultipartWP8

FeedBack Note:
Please share your thoughts,what you think about this post,Is this post really helpful for you?I always welcome if you drop comments on this post and it would be impressive.

Follow me always at @Subramanyam_B
Have a nice day by  :)



    Senin, 04 Mei 2015

    Cara Daftar ADF.LY TERBARU 2016 dan cara cepat dapatkan dollar

    Cara Daftar ADF.LY TERBARU 2016 dan cara cepat dapatkan dollar

    Salam Blogging, Kali ini Bloggingpasuruan akan share bagaimana daftar di Adf.ly dan bagaimana cara dapatkan uang dari situs ( shortener link ) atau pemendek link adfly. ADF.LY adalah salah satu situs yang memungkinkan sobat mendapatkan dollar dari setiap pengunjung yang meng-klik link yang sobat persingkat menggunakan pemendek link adfly.

    Catatan : Uang hasil dari ADF.LY akan di transfer ke akun paypal anda, dan sobat bisa mentransfer uang dalam bentuk dollar dari PAYPAL langsung ke rekening sobat di BANK di Indonesia ( ini kebijakan terbaru dari paypal sejak Oktober 2014 )

    Situs ini Akan membayar publisher / penerbit iklannya jika telah mencapai titik PayOut dengan bayaran minimal 5 USD lewat Paypal atau minimal 10 USD lewat Payoneer.

    Di bawah ini cara mendaftar di Adfly.

    1. Masuk ke link adf.ly.com

    Catatan : Silahkan masuk ke link ADF.LY di atas, Sobat bisa mendaftar sambil melihat tutorial dibawah ini

    Pastikan pada Account Type, Anda memilih "Link Shrinker : CreateShortened URLs And Earn Money". Type akun tersebut adalah untuk pemasang iklan (publisher) untuk menerima pembayaran dari Adf.ly ( jangan kliru, pilih yang publisher). Masukkan semua informasi anda ke dalam form pendaftaran yang di sediakan , ketika selesai centang "I agree to the terms and condition" lalu klik JOIN.

    Setelah itu Sobat akan mendapatkan konfirmasi dari ADF.LY >>

    >>  Adfly akan mengirimkan pemberitahuan dan kode untuk verifikasi, buka email sobat disitu akan tertera kode dan link, copy kodenya kemudian buka link, pastekan kode di tempat yang sudah disediakan lalu verifikasi.
    >>  Jika sudah cobalah login dengan email dan password yang sobat buat tadi.

    Naaa… bagaimana cara mendapatkan Dollar dari Adf.ly ?
    Berikut ini adalah bagaimana cara anda mendapatkan atau menghasilkan uang di adf.ly

     1. Copy link yang ingin sobat pendekkan, lalu pastekan di kotak yang tersedia ( "http://" dan klik shrink )

     2. Pasang link tersebut di tempat yang Sobat inginkan, misalnya di artikel Blog Sobat. Pada umumnya diletakkan pada artikel DOWNLOAD SOFTWARE atau yang lainnya

     3. Ketika seseorang mengeklik link hasil pemendekan milik Sobat yang di buat tadi, dari klik pengunjung Blog, sobat sudah mendapatkan dollar dari orang yang mengeklik link yang sobat pendekkan tadi. Semakin banyak LINK yang sobat buat akan semakin banyak pula DOLLAR masuk ke rekening Sobat…

    4. Adfly akan membayar jika Dollar yang sobat kumpulkan sudah $5.00. dan ini akan di bayarkan oleh ADF.LY melalui akun PayPal atau Payoneer ini tergantung dari pilihan sobat pembayarannya melalui apa… paypal atau payoneer.

    Silahkan mendaftar dan mencobanya, Semakin Sobat rutin dan telaten membuat link shortener di ADF.LY semakin banyak pula dollar masuk ke saku Sobat… selamat mencoba dan sukses…. Telaten adalah kunci kesuksesan 


    Cara Mengembalikan Kontak yang hilang di HP Android

    Cara Mengembalikan Kontak yang hilang di HP Android

    Google Android memiliki utilitas backup yang cukup layak. Ia akan meng-update informasi setiap detik jika ada perubahan dan ini merupakan keuntungan bagi pengguna Android selama server mereka tidak mengalami kehilangan data.

    Jika Anda tidak sengaja menghapus seluruh kontak, dalam hitungan detik, akun Google Anda akan di-update. Ini bisa menjadi masalah besar, hal ini berlaku untuk aplikasi dan akun lainnya yang pernah disinkronisasi. Bahkan jika hp Android Anda hilang dan Anda menghapusnya menggunakan aplikasi keamanan, seperti Carbonite mobile atau Lookout, data yang terhapus di hp Anda juga akan terhapus di server Google.

    Cara Mengembalikan Data Android yang Hilang

    Cara Mengembalikan Kontak yang hilang di HP Android


    Backup kontak google

    Karena sistem backup Google tersebut, banyak pengguna yang memakai aplikasi pihak ketiga untuk membuat backup informasi mereka. Aplikasi seperti Titanium backup bisa dibilang sempurna untuk mem-backup aplikasi dan informasi aplikasi, tapi kekurangannya adalah backup itu sendiri memakan banyak ruang dan informasi yang baru di hp tidak segera ditambahkan.

    Dan juga karena backup ada pada perangkat itu sendiri, dalam kasus penghapusan total, semua informasi secara permanen akan dihapus.


    Cara Mengembalikan Kontak yang hilang di HP Android


    Restore backup kontak google

    Tapi Google telah memikirkannya juga dan dengan sedikit kecerdikan, Anda dapat mengembalikan kontak seperti belum pernah terjadi apa-apa sebelumnya. Hal ini dimungkinkan karena Google menyimpan beberapa catatan dari informasi Anda di beberapa kondisi dan jika ada sesuatu yang terjadi, Anda dapat mengembalikan ke keadaan sebelumnya. Meskipun mengembalikan data secara lengkap tidak ada jaminannya, cara ini dapat memberikan Anda dengan beberapa informasi yang telah dihapus.

    Untuk mengembalikan kontak Google, yang harus Anda lakukan adalah pergi ke akun Gmail, masukkan kontak Anda dan di bawah “More”, Anda akan menemukan pilihan yang memungkinkan Anda untuk mengembalikan kontak ke keadaan sebelumnya. Dengan mengklik “Restore Contacts”, sebuah jendela akan terbuka yang meminta Anda dari kapan Anda ingin mengembalikan kontak dan Anda dapat memilih pilihan 30 hari. Setelah memilih waktu pemulihannya, Anda dapat mengklik “Restore” dan kontak Anda dari waktu tersebut akan dimuat pada akun Gmail dan mereka akan disinkronkan dengan perangkat Android Anda dalam beberapa detik.

    Cara Mengembalikan Kontak yang hilang di HP Android


    restore backup data informasi googleUntuk mengembalikan setting dan informasi lainnya, sebelumnya Anda sudah mengaktifkan fitur backup dari perangkat Android. Buka menu “Settings” > “Backup and Restore ” dan cek “Back up my data” dan “Automatic Restore”. Hal ini akan memastikan bahwa jika Anda menghapus sebuah aplikasi atau beberapa aplikasi, informasi mereka sudah dihapus, namun salinannya disimpan pada akun Google Anda.

    Ketika Anda menginstal ulang aplikasi yang sudah dihapus, informasi yang tersimpan di server Google akan didownload dan ditambahkan ke dalam aplikasi tersebut, hal ini hanya akan terjadi jika Anda memberi tanda centang pada “Automatic Restore”, tapi sekali lagi, integritas data tidak dijamin dan beberapa informasi mungkin hilang dalam proses, tapi masih lebih baik daripada tidak sama sekali

    Meskipun tidak sempurna, metode ini akan memungkinkan Anda untuk membuat backup data pada perangkat Android . Karena Google membuat salinan data secara teratur, Anda dapat yakin bahwa Anda tidak akan kehilangan apa-apa. Sistem ini pasti akan menjadi lebih baik dengan waktu, dan jika kualitas layanan ini Google telah pemikiran manusia kita sesuatu, itu adalah bahwa mereka ingin menyempurnakan layanan mereka dan membuat mereka yang terbaik.

    Sabtu, 02 Mei 2015

    Facebook Gratis di ANDROID Terbaru


    Facebook Gratis di ANDROID Terbaru


    Salam, Bloggingpasuruan kali ini share Cara gratis akses facebook tanpa mengurangi kuota internet. saat ini, akses internet seakan sudah menjadi kebutuhan pokok. Entah itu di kantor, di sekolah atau bahkan pada saat makan siang, kegiatan dengan smartphone seolah tidak terlepas dari internet. Salah satu yang paling sering dilakukan adalah membuka Facebook.

    Hanya saja, kebutuhan akses internet sendiri tidak terlepas dari Kuota Data, yang dimana harganya semakin hari makin mahal. Bayangkan, untuk 1 GB kuota data, kamu harus membelinya seharga Rp 10.000,- (sepuluh ribu rupiah) dan parahnya belum ada operator yang berani menyediakan paket internet yang benar-benar Unlimited.

    Oleh karena itu, JalanTikus ingin memberikan Tips Gratis Akses ke Facebook tanpa mengurangi kuota internet kamu sedikitpun, bahkan tidak hanya Facebook, kamu juga bisa mengakses situs-situs seperti Bola.net, OLX.co.id, dan lain-lain.
    Cara Gratis Akses Facebook Tanpa Mengurangi Kuota Internet

    Dengan menggunakan proyek Internet.org dari Facebook. Internet.org adalah proyek yang diusung oleh Mark Zuckerberg, sang pendiri Facebook, yang menginginkan adanya kebebasan dan kemudahan bagi masyarakat dunia dalam mengakses internet.

    1. Download dan install aplikasi IIInternet.org** di smartphone kamu.
    2.Buka dan jalankan aplikasiInternet.org di smartphone kamu, lalu klik Lanjutkan.

    Facebook Gratis di ANDROID Terbaru


    3. Pastikan kamu sudah menginstal aplikasi Facebook di Android. Jika belum, downloaddan install dulu Facebook untuk Android.
    4. Untuk mengakses Facebook secara gratis, kamu harus menjalankan Facebook melalui aplikasi Internet.org.

    Facebook Gratis di ANDROID Terbaru

    5. Sekarang, masuk dan gunakan Facebook dengan gratis tanpa takut kehabisan kuota internet.

    Facebook Gratis di ANDROID Terbaru

    Hanya saja, cara ini baru berlaku untuk pengguna Indosat_(IM3, Mentari & StarOne),_ sedangkan untuk operator lain sepertinya masih harus menunggu giliran, seperti XL, Telkomsel, Axis dan Three (3).

    Cara Root Android dengan Towelroot

    Cara Root Android dengan Towelroot


    Salam, Bloggingpasuruan. Kali ini saya akan bagikan tutorial cara Cara Root Semua Jenis Android dengan Towelroot. Root merupakan sebuah hal penting dilakukan, apalagi jika kamu suka melakukan modifikasi pada smartphone android kamu. Banyak cara yang bisa dilakukan untuk root Android. Pada artikel kali ini, Jaka akan membahas cara root Android dengan Towelroot.

    Towelroot merupakan sebuah aplikasi buatan George Hotz (geohot), seseorang Hacker yang membuat aplikasi jailbreak untuk iOS. Walaupun aplikasi masih sangat baru, namun kemampuannya untuk me-root berbagai macam Android sudah tidak diragukan lagi. Berikut adalah cara root Android dengan Towelroot:

    1. Download Towelroot  lalu install seperti biasa di Android kamu
    2. Buka Towelroot-nya, kemudian klik make it rain untuk mulai melakukan root

    Cara Root Android dengan Towelroot

    3. unggu sebentar hingga semua prosesnya selesai

    Jika sudah selesai, secara otomatis Android kamu sudah berhasil di-root.  Apabila sudah menggunakan Towelroot namun Android kamu masih belum berhasil di-root. Kamu bisa root android dengan Framaroot atau kamu bisa juga root android dengan Kingoapp. Selamat mencoba!

    Jumat, 01 Mei 2015

    Cara Mendapatkan Loot Besar di Clash of Clans


    Cara Mendapatkan Loot Besar di Clash of Clans

    Salam, Bloggingpasuruan kali ini akan share Cara Dapat Loot Besar di Clash of Clans dengan XmodGames. Looting pada game Clash of Clans memang sangat penting dilakukan. Dengan Looting, kita mempunyai banyak sumber daya (Gold, Elixr dan Dark Elixr) yang bisa digunakan untuk membangun bangunan, ataupun membuat Troops.

    Namun, tidak semuanya berjalan lancar saat sedang mencari Loot. Sering sekali, Loot yang ditemukan tidaklah banyak seperti yang kita inginkan. Walaupun sudah klik Next terus-menerus, tetap saja Loot musuh kita sedikit.

    Nah, untuk mengatasi masalah tersebut, Jaka punya sebuah aplikasi yang cocok digunakan. Aplikasi ini akan mencari secara otomatis desa yang mempunyai sumber daya besar untuk diserang. Untuk menggunakannya, pastikan Android kamu sudah di-root. Jika belum, kamu bisa gunakan Cara Root tanpa PC atau Cara Root Android dengan TowelRoot

    Jika sudah, kita mulai ke langkah-langkahnya:
    1. Download XModGames terlebih dahulu, lalu install seperti biasa di Android kamu.

    2. Buka XModGames-nya, lalu pastikan klik Grant saat aplikasinya meminta akses root lalu pilih Clash of Clans.

    Cara Mendapatkan Loot Besar di Clash of Clans


    3. Klik tombol Install Mod yang berwarna biru lalu tunggu sebentar. Setelah itu klik Launch yang ada di bagian atas untuk menjalan Clash of Clans dengan XModGames.

    Cara Mendapatkan Loot Besar di Clash of Clans


    Akan muncul tombol X yang ada di sebelah kanan. Klik tombol tersebut, lalu atur dan masukan angka ke Gold, Elixr atau Dark Elixr sesuka kamu. Angka yang diatur dibagian tersebut akan menentukan jumlah minimal Loot yang ingin dicari.

    Cara Mendapatkan Loot Besar di Clash of Clans


    Contoh: Jika diatur 200.000, secara otomatis kamu akan mendapatkan Loot lebih dari atau sama dengan 200.000

    Pastikan Meet All The Conditions dan Search Switch sudah dalam keadaan ON.
    Ini adalah hasil Looting menggunakan XModGames.

    Cara Mendapatkan Loot Besar di Clash of Clans

    Agar lebih cepat ditemukan, saran bloggingpasuruan adalah kamu menurunkan Liga kamu dari sebelumnya. Semoga bermanfaat …. Nice gaming.