diff --git a/pom.xml b/pom.xml index e4490fe..123d737 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.daxiang agent - 0.7.8 + 0.7.9 jar diff --git a/src/main/java/com/daxiang/action/MobileAction.java b/src/main/java/com/daxiang/action/MobileAction.java index 54b0293..c00071d 100644 --- a/src/main/java/com/daxiang/action/MobileAction.java +++ b/src/main/java/com/daxiang/action/MobileAction.java @@ -4,7 +4,7 @@ import com.daxiang.core.action.annotation.Action; import com.daxiang.core.action.annotation.Param; import com.daxiang.core.mobile.MobileDevice; -import com.daxiang.utils.HttpUtil; +import com.daxiang.utils.FileUtil; import io.appium.java_client.AppiumDriver; import io.appium.java_client.TouchAction; import io.appium.java_client.touch.WaitOptions; @@ -57,7 +57,7 @@ public void switchContext(@Param(possibleValues = "[{'value': 'NATIVE_APP', 'des public void installApp(@Param(description = "app下载地址") String appDownloadUrl) throws IOException { Assert.hasText(appDownloadUrl, "appDownloadUrl不能为空"); - File app = HttpUtil.downloadFile(appDownloadUrl); + File app = FileUtil.downloadFile(appDownloadUrl); try { mobileDevice.installApp(app); } finally { diff --git a/src/main/java/com/daxiang/core/mobile/android/AndroidDevice.java b/src/main/java/com/daxiang/core/mobile/android/AndroidDevice.java index dbf216e..6a9d37c 100644 --- a/src/main/java/com/daxiang/core/mobile/android/AndroidDevice.java +++ b/src/main/java/com/daxiang/core/mobile/android/AndroidDevice.java @@ -14,7 +14,6 @@ import com.daxiang.core.mobile.android.stf.Minitouch; import com.daxiang.core.mobile.appium.AndroidNativePageSourceHandler; import com.daxiang.core.mobile.appium.AppiumServer; -import com.daxiang.utils.HttpUtil; import com.daxiang.utils.Terminal; import com.daxiang.utils.UUIDUtil; import io.appium.java_client.android.AndroidDriver; @@ -33,6 +32,7 @@ import java.io.File; import java.io.IOException; +import java.net.URL; import java.nio.file.Files; import java.nio.file.attribute.PosixFilePermission; import java.time.Duration; @@ -136,7 +136,7 @@ public void installApp(File appFile) { // 主要因为appium server无法在安装app时,响应其他请求,所以这里用ddmlib安装 AndroidUtil.installApk(iDevice, appFile.getAbsolutePath()); } catch (InstallException e) { - throw new RuntimeException(String.format("[%s]安装app失败", getId()), e); + throw new RuntimeException(String.format("[%s]安装app失败: %s", getId(), e.getMessage()), e); } finally { if (!scheduleService.isShutdown()) { scheduleService.shutdown(); @@ -238,7 +238,7 @@ public synchronized String getChromedriverFilePath() { if (!chromedriverFile.exists()) { try { log.info("[{}]download chromedriver from {}", getId(), downloadUrl); - HttpUtil.downloadFile(downloadUrl, chromedriverFile); + FileUtils.copyURLToFile(new URL(downloadUrl), chromedriverFile); if (!Terminal.IS_WINDOWS) { // 权限 diff --git a/src/main/java/com/daxiang/service/AndroidService.java b/src/main/java/com/daxiang/service/AndroidService.java index 73fccdb..a4f2e0c 100644 --- a/src/main/java/com/daxiang/service/AndroidService.java +++ b/src/main/java/com/daxiang/service/AndroidService.java @@ -7,7 +7,7 @@ import com.daxiang.core.mobile.android.AndroidUtil; import com.daxiang.core.mobile.android.IDeviceExecuteShellCommandException; import com.daxiang.exception.AgentException; -import com.daxiang.utils.HttpUtil; +import com.daxiang.utils.FileUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org.springframework.stereotype.Service; @@ -48,9 +48,8 @@ public void stopAdbKit(String mobileId) { public String aaptDumpBadging(String apkDownloadUrl) { File apkFile = null; - try { - apkFile = HttpUtil.downloadFile(apkDownloadUrl); + apkFile = FileUtil.downloadFile(apkDownloadUrl); return AndroidUtil.aaptDumpBadging(apkFile.getAbsolutePath()); } catch (IOException e) { log.error(e.getMessage(), e); @@ -89,4 +88,4 @@ public void setIme(String mobileId, String ime) { throw new AgentException(e.getMessage()); } } -} \ No newline at end of file +} diff --git a/src/main/java/com/daxiang/utils/FileUtil.java b/src/main/java/com/daxiang/utils/FileUtil.java new file mode 100644 index 0000000..06d2a9a --- /dev/null +++ b/src/main/java/com/daxiang/utils/FileUtil.java @@ -0,0 +1,19 @@ +package com.daxiang.utils; + +import org.apache.commons.io.FileUtils; + +import java.io.File; +import java.io.IOException; +import java.net.URL; + +/** + * Created by jiangyitao. + */ +public class FileUtil { + + public static File downloadFile(String url) throws IOException { + File file = new File(UUIDUtil.getUUID()); + FileUtils.copyURLToFile(new URL(url), file); + return file; + } +} diff --git a/src/main/java/com/daxiang/utils/HttpUtil.java b/src/main/java/com/daxiang/utils/HttpUtil.java deleted file mode 100644 index 872a0cf..0000000 --- a/src/main/java/com/daxiang/utils/HttpUtil.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.daxiang.utils; - -import com.daxiang.App; -import org.apache.commons.io.FileUtils; -import org.springframework.web.client.RestTemplate; - -import java.io.File; -import java.io.IOException; - -/** - * Created by jiangyitao. - */ -public class HttpUtil { - - public static void downloadFile(String url, File file) throws IOException { - byte[] bytes = App.getBean(RestTemplate.class).getForObject(url, byte[].class); - FileUtils.writeByteArrayToFile(file, bytes, false); - } - - public static File downloadFile(String url) throws IOException { - return downloadFile(url, true); - } - - public static File downloadFile(String url, boolean renameFile) throws IOException { - String fileName = url.substring(url.lastIndexOf("/") + 1); - if (renameFile) { - fileName = UUIDUtil.getUUIDFilename(fileName); - } - - File file = new File(fileName); - downloadFile(url, file); - - return file; - } -}