Merge pull request #41 from Trays/media_object_send

Sending of FBMediaObject
This commit is contained in:
Blake Bender 2015-08-12 10:43:27 -07:00
Родитель fa8f85923c 064464bcb1
Коммит 1bc5843aad
1 изменённых файлов: 50 добавлений и 1 удалений

Просмотреть файл

@ -479,7 +479,7 @@ Uri^ FBClient::PrepareRequestUri(
kvp->MoveNext();
}
if (mediaObjects->Size > 0 || mediaStreams->Size > 0)
if (mediaStreams->Size > 0)
{
IIterator<IKeyValuePair<String^, Object^>^>^ facebookMediaStream =
mediaStreams->First();
@ -534,6 +534,55 @@ Uri^ FBClient::PrepareRequestUri(
dataWriter->WriteString(str);
}
if (mediaObjects->Size > 0)
{
IIterator<IKeyValuePair<String^, Object^>^>^ facebookMediaObject =
mediaObjects->First();
while (facebookMediaObject->HasCurrent)
{
String^ sbMediaObject = ref new String();
FBMediaObject^ mediaObject =
dynamic_cast<FBMediaObject^>(
facebookMediaObject->Current->Value);
if ((mediaObject->GetValue()== nullptr) ||
(mediaObject->ContentType == nullptr) ||
(mediaObject->FileName == nullptr) ||
(mediaObject->FileName->Length() == 0))
{
throw ref new InvalidArgumentException(AttachmentMustHavePropertiesSetError);
}
sbMediaObject = MultiPartFormPrefix + boundary +
MultiPartNewLine +
"Content-Disposition: form-data; name=\"" +
facebookMediaObject->Current->Key + "\"; filename=\"" +
mediaObject->FileName + "\"" + MultiPartNewLine +
"Content-Type: " + mediaObject->ContentType +
MultiPartNewLine + MultiPartNewLine;
OutputDebugString(sbMediaObject->Data());
OutputDebugString(L"\n");
dataWriter->WriteString(sbMediaObject);
if (mediaObject->GetValue() == nullptr)
{
throw ref new InvalidArgumentException(AttachmentValueIsNull);
}
dataWriter->WriteBytes(mediaObject->GetValue());
dataWriter->WriteString(MultiPartNewLine);
facebookMediaObject->MoveNext();
}
String^ str = ref new String();
str = MultiPartNewLine + MultiPartFormPrefix + boundary +
MultiPartFormPrefix + MultiPartNewLine;
dataWriter->WriteString(str);
}
// TODO: Figure out where to get the right value for this. input
//doesn't appear to have a length at this point in the code when debugging,
contentLength = input == nullptr ? 0 : (long)input->Size;