1
私はアンドロイドからYouTubeにビデオをアップロードするアプリケーションを開発中です。私はアンドロイドでAPIを使用することはできないことを知っているので、動画をアップロードするためにYouTubeにhttp投稿リクエストを送信する必要があります。ここでは私がエラーを取得している私のコードです。無効なコンテンツタイプx-www-urlencode、コードは私がContent-Typeをapplication/atom + xmlとして使用したことを示すコードです。 charset = UTF-8なぜこのタイプのエラーが発生するのですか?これで私を助けることができますか?YouTubeのビデオアップロード - Android
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("https://www.google.com/accounts/ClientLogin");
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(new BasicNameValuePair("Content-Type", "application/x-www-form-urlencoded"));
pairs.add(new BasicNameValuePair("Email", "xxxx"));
pairs.add(new BasicNameValuePair("Passwd", "xxx"));
pairs.add(new BasicNameValuePair("service", "youtube"));
pairs.add(new BasicNameValuePair("source", "YouTubeApp"));
post.setEntity(new UrlEncodedFormEntity(pairs));
HttpResponse response = client.execute(post);
String textResponse = getResponseBody(response);
String auth = textResponse.substring(textResponse.lastIndexOf("Auth"));
builder.setMessage(auth).show();
String entry = "<?xml version=\"1.0\"?>"
+ "<entry xmlns=\"http://www.w3.org/2005/Atom\""
+ " xmlns:media=\"http://search.yahoo.com/mrss/\""
+ " xmlns:yt=\"http://gdata.youtube.com/schemas/2007\">"
+ "<media:group>"
+ "<media:title type=\"plain\">Bad Wedding Toast</media:title>"
+ "<media:description type=\"plain\">"
+ "I gave a bad toast at my friend's wedding. Maybe"
+ "</media:description>"
+ "<media:category"
+ " scheme=\"http://gdata.youtube.com/schemas/2007/categories.cat\">People"
+ "</media:category>"
+ "<media:keywords>toast, wedding</media:keywords>"
+ "</media:group>"
+ "</entry>";
StringBuilder sb = new StringBuilder();
sb.append("--");
sb.append("Content-Type: application/atom+xml; charset=UTF-8");
sb.append(entry);
sb.append("--");
sb.append("Content-Type: video/3gpp");
sb.append("Content-Transfer-Encoding: binary");
String bodyStart = sb.toString();
File file = new File("/mnt/sdcard/recordvideooutput.3gpp");
FileInputStream fIn = new FileInputStream(file);
byte fileBytes[] = new byte[(int) file.length()];
fIn.read(fileBytes);
HttpClient client1 = new DefaultHttpClient();
HttpPost post1 = new HttpPost("https://uploads.gdata.youtube.com/feeds/api/users/default/uploads");
List<NameValuePair> pairs1 = new ArrayList<NameValuePair>();
pairs1.add(new BasicNameValuePair("X-GData-Key", "key=xxxxx"));
pairs1.add(new BasicNameValuePair("Slug", "/mnt/sdcard/recordvideooutput.3gpp"));
pairs1.add(new BasicNameValuePair("Content-Type", "application/atom+xml; charset=UTF-8"));
pairs1.add(new BasicNameValuePair("Content-Length", "" + (bodyStart.getBytes().length + fileBytes.length)));
pairs1.add(new BasicNameValuePair("Authorization", "GoogleLogin " + auth));
post1.setEntity(new UrlEncodedFormEntity(pairs1));
response = client1.execute(post1);
ご返信ありがとうございます。あなたの返事に+1をつけます。 – Anvesh
ありがとう! – User3