Inside your DialogFragment, call Fragment.setRetainInstance(boolean) with the value true. You don’t need to save the fragment manually, the framework already takes care of all of this. Calling this will prevent your fragment from being destroyed on rotation and your network requests will be unaffected.
You may have to add this code to stop your dialog from being dismissed on rotation, due to a bug with the compatibility library:
@Override
public void onDestroyView() {
Dialog dialog = getDialog();
// handles https://code.google.com/p/android/issues/detail?id=17423
if (dialog != null && getRetainInstance()) {
dialog.setDismissMessage(null);
}
super.onDestroyView();
}